让我们拥有
std::vector <std::vector <int>> myVec;
myVec.resize(100);
myVec[0].push_back(1);
myVec[0].push_back(2);
当我用断点破坏程序时,我发现每个 myVec [] 的大小和容量都是零。此外,当我尝试访问myVec[0][0]
时,会出现访问冲突错误。这怎么可能?
P.S。:我正在使用VS 10
答案 0 :(得分:1)
您的代码段似乎完全正确。如果您遇到访问冲突问题,则问题出在其他地方。
以下是一个例子:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<vector<int>> myVec;
myVec.resize(100); // inserts 100 empty vectors into myVec
myVec[0].push_back(1);
myVec[0].push_back(2);
cout << myVec[0][0] << ' ' << myVec[0][1] << endl;
myVec[99].push_back(3);
cout << myVec[99][0] << endl;
return 0;
}
输出:
1 2
3
如果有人因使用调整大小填充空向量而感到困惑,请检查this
希望这会有所帮助;)