[英]Segmentation fault when using 2D vectors
我正在嘗試使用2D向量創建矩陣。 我不明白為什么編譯器會給我分段錯誤的錯誤。 任何想法? :)
這是我的代碼:
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector < vector <int> > Board;
int n;
cout<<"Enter size: ";
cin>>n;
Board.resize(n);
//Initialize with something
for(int ii=0; ii<n; ii++)
{
for (int jj=0; jj<n; jj++)
Board[i][j]=1;
}
//Show vector
for(int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
cout<<Board[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
我也嘗試用表達式“ Board.at(i).at(j)= 1”填充向量,但是什么也沒發生。
在這之后:
Board.resize(n);
您有一個包含n
空向量的向量。 然后,您就可以訪問它們,就好像它們具有n
元素一樣。 如果希望向量看起來像一個n×n矩陣,則可以這樣初始化它:
vector <vector<int>> Board(n, std::vector<int>(n));
請注意,這里有一些開銷。 向量的向量更像是指向數組的動態指針數組。 使用單個向量,提供兩個索引接口來模擬2D數組可能更有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.