我有一個包含向量的結構向量,我不知道如何初始化結構中的字段。 我有以下代碼:初始化結構向量中的向量
struct member {
vector<pair<int, int> > rival_result;
int matches;
}
vector<member> ranking(n);
我想設置該結構到另一向量的大小內的矢量的大小,並在所有的字段具有0(比賽和一對矢量的整數)的。 N可以是一個非常大的數字,所以它不能手動完成。 謝謝。
我有一個包含向量的結構向量,我不知道如何初始化結構中的字段。 我有以下代碼:初始化結構向量中的向量
struct member {
vector<pair<int, int> > rival_result;
int matches;
}
vector<member> ranking(n);
我想設置該結構到另一向量的大小內的矢量的大小,並在所有的字段具有0(比賽和一對矢量的整數)的。 N可以是一個非常大的數字,所以它不能手動完成。 謝謝。
寫出member
第一個構造函數,將您的向量的大小:
struct member {
explicit member (int n) : rival_result(n), matches(0) { }
vector<pair<int, int> > rival_result;
int matches;
};
現在創建您的載體:
vector<member> ranking(n, member(n));
謝謝,我不知道顯式說明符,明天我會問我的老師,如果我可以在我的代碼中使用它,它們對我們可以不能使用的廣告非常有限制。 – flapedriza
@flapedriza這裏使用'explicit'是可選的。它阻止編譯器將構造函數視爲定義從「int」到「member」的隱式轉換,這可能是錯誤的根源。 [這個問題](http://stackoverflow.com/questions/121162/what-does-the-explicit-keyword-in-c-mean)有詳細信息。 –
C++ 11或更高版本允許嗎?另外,初始化後大小是否會改變/是否必須在運行時設置? – Deduplicator
不能使用c + + 11,並且初始化後大小不能改變,對於更多信息,這個代碼是一個類的私有成員,並且我想將它初始化爲創建者函數0,它是: 排名: :Ranking(int n); – flapedriza