Arrays 向量<;向量<;int>&燃气轮机;使用6x6维度实现

Arrays 向量<;向量<;int>&燃气轮机;使用6x6维度实现,arrays,c++11,vector,Arrays,C++11,Vector,我从这里得到了答案。 您有两种选择。向量的向量或单个向量(请参见@Bob_u_;的注释) 向量的优点是C++ +善良(迭代器边界检查等)。缺点是构建/复制成本较高行+1向量 行*列大小的单个向量的好处是,您只需要单个向量构造(或在需要时复制)。(另一个性能优势是数据的缓存位置。) 以下是如何保留[row][col]语法 const int rows = 6; const int cols = 6; vector<int> x(rows*cols); //enable using [

我从这里得到了答案。
您有两种选择。向量的向量或单个向量(请参见@Bob_u_;的注释)

<向量>向量的优点是C++ +善良(迭代器边界检查等)。缺点是构建/复制成本较高<必须构造(或复制)代码>行+1向量

行*列大小的单个向量的好处是,您只需要单个向量构造(或在需要时复制)。(另一个性能优势是数据的缓存位置。)

以下是如何保留[row][col]语法

const int rows = 6;
const int cols = 6;
vector<int> x(rows*cols);

//enable using [row][col] syntax
auto a_int = reinterpret_cast<int (*)[rows]>(x.data());
// cout <<  a_int[row][col] << '\n';
const int rows=6;
常数int cols=6;
向量x(行*列);
//使用[row][col]语法启用
auto a_int=reinterpret_cast(x.data());

//你根本就没试过这个吗?是的,你可以,但是最好声明一个1D向量:
向量arr(36)
并访问其元素,计算正确的索引:
arr[i*6+j]
而不是
arr[i][j]
“@radouanerofid”谢谢。。虽然我不懂“多维向量”。所以请你提供一个更好的方法来澄清我的所有疑问。\这个问题的答案在这个链接上。。。