2016-06-14 16 views
1

隣接リストvector < list <int> >経由で作成しようとしていますが、list<int>のサイズを割り当てる方法はありません。ベクトルのサイズを割り当てる方法< list <int>>?

宣言中にvector< list<int> >list<int>の両方のサイズを指定したいとします。

私のコードを参照してください。

#include<iostream> 
#include<vector> 
#include<list> 

using namespace std; 
... 

vector< list<int> > adj_list<(number_city); 
// here just specified the size of vector< list<int> >. 
+0

'ベクトル< list> adj_list <(number_city、std :: list (some_size));'を使用できます。しかし、それは正しいとは言えません。隣接リストのサイズをあらかじめ指定したいのであれば、 'std :: vector >'を使うのはなぜですか? –

答えて

1

あなたはvectorの大きさと、すべての要素のサイズを指定したい場合は、その後、その後、

vector< list<int> > adj_list(number_city, list<int>(some_number)); // construct vector with size = number_city and all the elements are lists with some_number elements default constructed 

vector< list<int> > adj_list(number_city); // construct vector with size = number_city, all the elements are empty (size == 0) 

を初期化するときvectorのサイズを指定したい場合

std::vector's third constructorおよびstd::list's third constructor

+0

ありがとうございました。 @songyuanyao –

0
vector< list<int> > adj_list<(number_city); 
for(vector< list<int> >::size_type i = 0; i < number_city; i++) 
{ 
    adj_list.at(i).resize(some_size); 
} 

この方法で試すことができます。

関連する問題