我有在我們有一個結構矢量結構
struct Pair {
string s1;
string s2;
bool equivalent;
};
然後,他建立了這些結構的硬編碼
std::vector<Pair> PairID;
staticdata() {
PairID={{"string","string2",true},
{"string","string3",true},
{"string","string4",false},
{"string","string7",false},
{"string3","string8",false}
};
}
不幸的是我的編譯器的矢量另一個人給我一些代碼在抱怨上線PairID = {{ 「字符串」, 「字符串2」,真},
這是爲什麼?他建議使用-std = C++ 0x進行編譯,但我的編譯器(gcc 4.2)不支持這一點。有沒有簡單的方法來轉換代碼,以便它的作品?爲什麼它失敗?
我使用Mac OSX和寧願不更新我的編譯器
話又說回來,在PigBen的答案臨時數據可以被製作成static變量,因此這將需要更少的空間和快於您的解決方案進行復制。 – 2010-11-11 15:33:44
@Victor:可以肯定的,我可能會使用像PigBen的一個解決方案,除非出於某種原因,我不想。 – 2010-11-11 15:34:58
@Victor:但我非常懷疑,在優化版本中,PigBen的解決方案將比這更快。 – 2010-11-11 15:36:30