C++ C+中的二维向量+;

C++ C+中的二维向量+;,c++,vector,C++,Vector,嘿,我对创建一个二维的字符向量很好奇,所以我知道它是向量中的一个向量,我想把所有的值初始化为',' 所以我知道这一点,我相信 vector<vector<char>> spaceStation(); 向量空间站(); 我猜列和行在括号中,但我不太确定 谢谢 如果您要查找的是nxn或nxm 2D矩阵,其中n和m可以在创建矩阵之前确定(即使是在运行时),那么向量向量可能不是最有效的方法。在内部,向量增长的方式是,如果当前分配的空间被填满,则分配更大的内存,并将所有现有数据

嘿,我对创建一个二维的字符向量很好奇,所以我知道它是向量中的一个向量,我想把所有的值初始化为','

所以我知道这一点,我相信

vector<vector<char>> spaceStation();
向量空间站(); 我猜列和行在括号中,但我不太确定


谢谢

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


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

首先,将
>>
替换为
>
,中间加空格。您可以到这里检查构造函数参数。可能有帮助:
vector spaceStation(5,vector(10,,)
将创建5x10矩阵,所有矩阵都包含
,'
@YuHao:如果使用C++11,则不再需要该矩阵。