C++ 尝试访问空向量时出现分段错误

C++ 尝试访问空向量时出现分段错误,c++,segmentation-fault,stdvector,C++,Segmentation Fault,Stdvector,所以我制作了一个2D字符数组,但每次我尝试访问它时,我都会遇到一个分割错误,我不知道为什么 std::vector<std::vector<char>> matrix_; //Filling it with space ' ' characters std::vector<char> aRow; matrix_.resize(height_, aRow); for (std::vector<char> row : matrix_) { r

所以我制作了一个2D字符数组,但每次我尝试访问它时,我都会遇到一个分割错误,我不知道为什么

std::vector<std::vector<char>> matrix_;

//Filling it with space ' ' characters
std::vector<char> aRow;
matrix_.resize(height_, aRow);
for (std::vector<char> row : matrix_) {
    row.resize(width_, ' ');
}

std::cout << matrix_[0][0]; //Segmentation fault here

std::向量矩阵;
//用空格“”字符填充它
std::矢量aRow;
调整矩阵大小(高度、方位);
对于(标准::向量行:矩阵_u3;){
行。调整大小(宽度?,);
}

std::cout在
for
中使用
自动&行:矩阵
(注意添加的引用),以获取您要查找的每一行的引用

当您拥有它时,它会创建一个副本,调整其大小并丢弃结果

在不太悲观的情况下,您还可以使用大小合适的行调整每个列的大小。不需要
循环的

std::vector<char> aRow(width_, ‘ ‘);
matrix_.resize(height_, aRow);
std::向量aRow(宽度‘,’);
调整矩阵大小(高度、方位);

for(std::vector row:
正在制作副本。
for(auto&&row:matrix)
,并在这个过程中为自己节省一些输入。啊,我知道错误在哪里了。谢谢!但是为什么我是一个乞丐,所以我现在想避免自动,直到我更好地理解类型。但是使用单个&works!谢谢!
std::vector aRow;aRow。resize(width?);
可以简化为
std::vector aRow(宽度,,);