2016-04-12 107 views
0

C++ 11標準給出了一個初始化像這樣的初始化列表的機會。通過初始化列表在構造函數中初始化類成員(矢量)

vector <int> a {3, 5, 6, 2}; 

我只是想知道是否可以初始化向量是類的通過初始化列表構造一個成員。

我尋找這樣的事情,但我沒有在互聯網上或Stack Overflow上找到它,所以我認爲我應該要求它。我希望不僅我,而且其他人也會覺得它有用。

我不想讓使向量成爲一個靜態成員的一類。

類應該是這樣的:

class Foo 
{ 
    public: 
     vector <int> myvector; 
     //Here should be a constructor 
}; 

它可以這樣來使用:

Foo aa{1, 2, 3, 6, 1}; // it should initialize a vector 
+2

'富::富(的std :: initializer_list init_list):A(init_list){}' –

+0

根據記錄,這是不是 「新」 標準更多的..有自從;) –

+0

@LightnessRacesinOrbit是啊你得到了正確的哈哈:) – FieryCod

回答

2

是一個例子!你只需要拿一個std::initializer_list並用它初始化你的矢量。

struct Foo { 
    Foo(std::initializer_list<int> l) 
    : _vec{l} { } 

    std::vector<int> _vec; 
}; 

Live on Coliru

+0

非常感謝您的回答,我真的沒有找到答案。 – FieryCod

+1

是的,尤其是在「相關」問題列表中的答案是正確的! –

相關問題