对象向量的初始化列表
Initializer list for vector of objects
我有以下示例代码。是否可以在不指定对象向量中的 "Test" 的情况下初始化对象列表,或者这是最好的方法?谢谢
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}) };
}
以下作品:
std::vector<Test> v = {{1, 2, 3}, {1, 2, 4}};
但我不确定这是否是你的意思。
以下都是初始化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}};
我有以下示例代码。是否可以在不指定对象向量中的 "Test" 的情况下初始化对象列表,或者这是最好的方法?谢谢
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}) };
}
以下作品:
std::vector<Test> v = {{1, 2, 3}, {1, 2, 4}};
但我不确定这是否是你的意思。
以下都是初始化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}};