0
class V
{
private:
int m_size;
std::vector<int> m_list;
public:
V(int size, std::initializer_list<int> init_list) : m_size(size)
{
m_list = std::vector<int>(init_list.begin(), init_list.end());
}
};
我做了一個類,它有一個構造函數採用多個參數,包括initializer_list。我想使用這個類像C++獲取構造函數的初始化列表與其他參數
V v(2) = {1, 2};
但我只能夠使用這個類像
V v(2, {1, 2});
我不能非initializer_list部分和initializer_list部分分隔參數,如作爲第一我寫的代碼?
'size'參數是否總是與'initializer_list'中的元素數相同?如果是這樣,你可以使用['initializer_list :: size'](http://en.cppreference.com/w/cpp/utility/initializer_list/size)成員函數。你的第一個語法沒有意義,所以不,你不能那樣做。你需要使用嵌套的大括號。 – Praetorian
@Praetorian它不是問題的直接答案,但它確實有幫助。謝謝。我會用這個。 – Mossid
因此,如果確實是初始化列表的大小,那麼接下來的問題是爲什麼您要將大小存儲在單獨的變量中?一個'矢量'跟蹤自己的大小。 – Praetorian