他们不是一样的吗?调用向量元素的问题
Are not they are same? Problem with calling vector element
vector< vector<int> > vec_c(3);
//Code #1
for(int i = 0; i < vec_c.size(); i++){
for(int j = 0; j < vec_c[i].size(); j++){
cout << vec_c[i][j] << " ";
}
cout << endl;
}
//Code #2
cout << "It is here" << vec_c[0][0] << endl;
所以我的代码的第一部分运行顺利并且输出向量没有任何问题,但是当我试图单独调用向量中的元素时它显示 "Segmentation fault"。我不确定为什么,因为基本上他们都在做同样的事情。
vec_c[0]
returns一个空的std::vector<int>
。因此,vec[0][0]
无效。
您的第一个示例没有失败的原因是:
for(int j = 0; j < vec_c[i].size(); j++){
检查 vec_c[0]
的大小,即 0,因此循环没有实际迭代。
vector< vector<int> > vec_c(3);
//Code #1
for(int i = 0; i < vec_c.size(); i++){
for(int j = 0; j < vec_c[i].size(); j++){
cout << vec_c[i][j] << " ";
}
cout << endl;
}
//Code #2
cout << "It is here" << vec_c[0][0] << endl;
所以我的代码的第一部分运行顺利并且输出向量没有任何问题,但是当我试图单独调用向量中的元素时它显示 "Segmentation fault"。我不确定为什么,因为基本上他们都在做同样的事情。
vec_c[0]
returns一个空的std::vector<int>
。因此,vec[0][0]
无效。
您的第一个示例没有失败的原因是:
for(int j = 0; j < vec_c[i].size(); j++){
检查 vec_c[0]
的大小,即 0,因此循环没有实际迭代。