2017-01-08 4 views
0

我々は次のように我々はそのベクトルを埋めることができvector<int> adj[10];のような1次元ベクトルを使用してBFSに隣接リストを埋めることができます。隣接リスト表現

main(){ 
int x,y,nodes,edges; 
cin>>nodes>>edges; 
for(int i=0;i<edges;i++){ 
cin>>x>>y; 
adj[x].push_back(y); //Insert y in adjacency list of x 
} 
} 

今、どのように我々は、2Dベクトルを使用することができます(ベクトルのベクトル) の1Dベクトルの代わりに隣接リストを埋めるvector<vector<int> >g; したがって、隣接ベクトルリストを構築するためにその2Dベクトルをどのように埋め込むことができますか?

答えて

0

xの最大値は、nとすることができます。
まず、2Dベクトルをn 1Dベクトルの数で初期化する必要があります。
次に、例のように操作を実行できます。

vector<vector<int> >g; 
for(int i = 0; i<n; i++) 
{ 
    vector<int>v; 
    g.push_back(v); 
} 

g[0].push_back(3); 
g[1].push_back(5); 
cout<<g[0][0]<<endl; 
cout<<g[1][0]<<endl; 

また、宣言時にベクターを初期化することもできます。

vector<vector<int> >g(n); 

g[0].push_back(3); 
g[1].push_back(5); 
cout<<g[0][0]<<endl; 
cout<<g[1][0]<<endl; 
関連する問題