如何将创建对象的参数完美地转发到 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/