假设我想将一个二维的int矩阵作为向量的向量来表示:
std::vector<std::vector<int> > myVec;
内部维度是常数,例如5,外部尺寸小于或等于N.为了最小化重新分配,我想保留空间:
myVec.reserve(N);
内向量假定什么尺寸?这是纯粹实现依赖吗?这如何影响数据的空间位置?由于内部维度是一个常数,有没有办法告诉编译器使用这个常量?如果内向量的大小改变,这些答案如何变化?
解决方法
由于你的内在维度是不变的,我想你想要的
std::vector< std::array<int,5> > vecs; vecs.reserve(N);
这将给您预分配的连续存储,这是性能最佳的.