是否可以在复制构造期间使用初始值设定项列表初始化向量的值数组?

Is it possible to initialize an array of values for a vector during copy construction using the initializer list?

提问人:denz 提问时间:4/16/2017 最后编辑:denz 更新时间:4/16/2017 访问量:50

问:

我想使用复制构造函数的初始值设定项列表将 1 到 9 的值添加到我的向量中,而不是在构造函数的主体中调用 pushElements。这怎么可能?

Hane::Hane(int val, bool veri){

}

Hane::Hane():m_myvalue(0), m_myveri(false) {
    pushElements();
}
Cell::~Cell() {}

void Cell::pushElements() {

     m_vector = { 1,2,3,4,5,6,7,8,9 };

}

与Hane.h相比

 private:

std::vector<int> m_vector;
C++ STL 复制构造函数 stdvector

评论

0赞 Tatsuyuki Ishi 4/16/2017
您的目标载体在哪里?
0赞 denz 4/16/2017
我添加了在 .h 文件中声明向量的代码
0赞 Ramzah Rehman 4/16/2017
为什么要在 pushElements() 函数中再次声明它?
0赞 denz 4/16/2017
我是 c++ 的新手,我不确定如何将值推入其中。我做了那个方法,但我想完全摆脱它,并在复制构造期间将值提供给向量
0赞 denz 4/16/2017
@RamzahRehman 我修复了重新脱皮

答:

3赞 zett42 4/16/2017 #1

只需使用采用初始值设定项列表 (8) 的构造函数:

struct myclass
{
    std::vector<int> m_vector;
    myclass() : m_vector{ 1,2,3,4,5,6,7,8,9 } {}
};

现场演示。

...或者更简单,直接初始化向量:

struct myclass
{
    std::vector<int> m_vector{ 1,2,3,4,5,6,7,8,9 };
};

现场演示。