如何将创建对象的参数完美地转发到 STL 集合?

我想避免不必要的拷贝。虽然我可以通过存储指针来避免这种情况,但我不想使用动态内存。

struct MyFatClass
{
    explicit MyFatClass(int a) {...}
    ...
};

std::vector<MyFatClass> records;
records.emplace_back(MyFatClass(1000)); // How can I avoid this temporary object?

最佳答案

使用 std::vector::emplace_back 时实际上不需要创建临时文件,这正是 emplace_back 的用途:

records.emplace_back(1000);

这将就地构造一个 MyFatClass 对象,避免临时和额外的拷贝。

关于c++ - 如何将参数完美地转发到 STL 集合?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19546788/

10-14 07:01