矢量&lt; vector <int>&gt;具有6x6维度实现

时间:2016-07-13 18:57:03

标签: arrays c++11 vector

1 个答案:

答案 0 :(得分:1)

你有两种选择。向量或单个向量的向量(参见@Bob __&#39;评论)。

向量向量的优点是C ++优度(迭代器边界检查等)。缺点是建设/复制成本较高。必须构造(或复制)rows+1个向量。

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

以下是保存[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';