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

8
考虑类FooBar
class Foo
{
public:
    Foo() = default;
    Foo(int);
};

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

private:
    std::vector<Foo> data_;
};

如何编写构造函数 Bar(const std::vector<int> & v),使得v的每个元素都可以使用Foo(int)初始化Foo对象?
1个回答

10

你可以使用:

Bar(const std::vector<int> & v) : data_(v.begin(), v.end()) {}

1
这里有没有不使用复制构造函数的原因? - scohe001
3
@scohe001,是的。我们正在从一个vector<int>创建一个vector<Foo> - R Sahu
啊,明白了,我没注意到。谢谢! - scohe001

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接