C++用另一个向量初始化向量

sto*_*eng 7 c++ initialization vector

考虑班级FooBar:

class Foo
{
public:
    Foo() = default;
    Foo(int);
};

class Bar
{
public:
    Bar() = default;
    Bar(const std::vector<int> & v);

private:
    std::vector<Foo> data_;
};
Run Code Online (Sandbox Code Playgroud)

如何编写构造函数Bar(const std::vector<int> & v)以便每个元素都v可以初始化一个Foo对象Foo(int)

R S*_*ahu 9

您可以使用:

Bar(const std::vector<int> & v) : data_(v.begin(), v.end()) {}
Run Code Online (Sandbox Code Playgroud)

  • @ scohe001,是的.我们从`vector <int>`创建一个`vector <Foo>`. (3认同)