相关疑难解决方法(0)

STL容器如何复制对象?

我知道STL容器就像vector在添加对象时复制对象一样.push_back方法看起来像:

void push_back ( const T& x );
Run Code Online (Sandbox Code Playgroud)

我很惊讶地看到它将该项目作为参考.我写了一个示例程序,看它是如何工作的.

struct Foo
{
    Foo()
    {
        std::cout << "Inside Foo constructor" << std::endl;
    }

    Foo(const Foo& f)
    {
        std::cout << "inside copy constructor" << std::endl;
    }
};

Foo f;
std::vector<Foo> foos;
foos.push_back(f);
Run Code Online (Sandbox Code Playgroud)

这复制了对象,我可以看到它正在调用copy-constructor.

我的问题是,当push_back把item作为参考时,它是如何调用copy-constructor的?或者我在这里遗漏了什么?

有什么想法吗..?

c++ constructor stl

11
推荐指数
1
解决办法
8309
查看次数

标签 统计

c++ ×1

constructor ×1

stl ×1