2016-01-07 42 views
1

我有一個對象將一個向量作爲其構造函數參數之一。當我完成時,我將在這12個文件中的每一箇中包含大約1000個這些對象(包含在一個矢量中),並且我一直在嘗試佈局。我能找到的最好辦法是在對象定義中創建所有參數。如何創建一個向量作爲參數

這裏是結構的基本版本:

struct MyObject { 
    MyObject (vector<int>); 
    vector<int> paraList; 
} 

所以我的對象定義將是這個樣子:

MyObject object1 ({0, 1, 2}); 
MyObject object2 ({0, 3, 1}); 
MyObject object3 ({5, 7, 5, 6}); 
MyObject object4 ({4}); 

這工作,但我真的很想做的是改爲在矢量定義中構建對象。像這樣:

vector<MyObject> objectList { 
    ({0, 1, 2}), 
    ({0, 3, 1}), 
    ({5, 7, 5, 6}), 
    ({4}) 
}; 

這感覺就像應該工作,但它沒有。我得到:

error: expected primary-expression before '{' token 
error: expected ')' before '{' token 
error: expected '}' before ')' token 

我覺得我的語法是正確的,如果這是可能的,所以就是我試圖做不可能的?

編輯:

對不起,除了一些拼寫錯誤,我不知道爲什麼這是題外話。我一直在閱讀規則,但我仍然不確定,請你評論一下,或者告訴我我做錯了什麼,這樣我可以在將來避免它?這並不意味着呻吟,只是想確保我做對了。

+4

刪除圓括號。 –

+0

你的槍的兒子!我嘗試過的所有事情,畢竟是谷歌搜索。非常感謝你,隨時補充說,作爲答案,我可以打勾:D –

+0

嗯,它現在有一個問題,最後};在列表的最後。有關於此的任何想法? –

回答

3

你應該做的是這樣的:

std::vector<MyObject> objectList {{{0, 1, 2}} , {{0, 3, 1}} , {{5, 7, 5, 6}} ,{{4}}}; 

Live Demo

+1

啊!謝謝,這更像是它。非常歡呼! –

相關問題