Bor*_*ain 3 c++ vector segmentation-fault
我正在尝试使用矢量创建一个2D数组.我写了以下代码:
int main() {
vector< vector<int> > v;
int i, j;
for(i=0; i<11; i++)
for(j=0; j<11; j++)
v[i].push_back(j);
for(i=0; i<11; i++) {
for(j=0; j<11; j++)
cout<<v[i][j]<<" ";
cout<<endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我期待它打印数字0到10,十一次(每次都在一个新行).但是代码给出了运行时错误(分段错误).谁能告诉我哪里出错了?
谢谢.
当你声明任何东西的矢量时,它还没有任何元素.
从而:
v[i].push_back(j)
Run Code Online (Sandbox Code Playgroud)
试图将j插入到位置i处的向量v内的不存在的向量中.
在这种情况下,你也知道的大小,你应该初始化您在构造函数中想要的元素数量的载体:
vector<vector<int> > v(11);
Run Code Online (Sandbox Code Playgroud)
初始化向量v,其中有11个空向量.
| 归档时间: |
|
| 查看次数: |
5229 次 |
| 最近记录: |