C ++中的二维向量

时间:2013-09-26 03:05:56

标签: c++ vector

嘿我很好奇创建了一个二维chars矢量,所以我知道它是一个向量内部的向量,我想将所有值初始化为','。

所以我相信我相信

vector<vector<char>> spaceStation();

我猜测列和行在括号中,但我不确定。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果它是你正在寻找的nxn或nxm 2D矩阵,其中n和m可以在创建矩阵之前确定(即使它在运行时),那么矢量矢量可能不是最有效的方法。在内部,向量增长的方式是在当前分配的空间被填满并将所有现有数据移动到新位置时分配更大的内存。类似地,插入新的第一行将要求所有向量向下移动,这反过来导致复制所有其他向量及其元素。

如果您知道n,m,即使它在运行时您可以使用单个向量(大小为n ^ 2或nxm)分配大块内存,并且逻辑上将访问元素作为向量(a [i] [j]将是vector [i * n + j]),从而有效地管理单个存储块。