对象矢量的初始化列表

时间:2015-10-21 20:30:39

标签: c++ c++11 stdvector initializer-list

我有以下示例代码。是否可以初始化对象列表而不在对象向量中指定“测试”,或者这是最好的方法吗?感谢。

class Test {
public:
    Test(const std::initializer_list<int> list) : m_(list) {

    }

private:
    std::vector<int> m_;
};

int main(int argc, char **argv) {
    std::vector<Test> v = { Test({1, 2, 3}), Test({1, 2, 4}) };


}

2 个答案:

答案 0 :(得分:4)

以下作品:

std::vector<Test> v = {{1, 2, 3}, {1, 2, 4}};

但我不确定这是不是你的意思。

答案 1 :(得分:2)

以下是初始化vector<Test>的所有有效方法。

 std::vector<Test> v1 = { Test({1, 2, 3}), Test({1, 2, 4}) };
 std::vector<Test> v2{Test({1, 2, 3}), Test({1, 2, 4}) };

 std::vector<Test> v3 = { {1, 2, 3}, {1, 2, 4}};
 std::vector<Test> v4{{1, 2, 3}, {1, 2, 4}};