Nat*_*mal 4 c++ performance stl
如何将对象创建的参数完美地转发到STL集合?
我想避免不必要的副本.虽然我可以通过存储指针来避免这种情况,但我不想使用动态内存.
struct MyFatClass
{
explicit MyFatClass(int a) {...}
...
};
std::vector<MyFatClass> records;
records.emplace_back(MyFatClass(1000)); // How can I avoid this temporary object?
Run Code Online (Sandbox Code Playgroud)
在使用时std::vector::emplace_back
,您实际上不需要创建临时文件,这正是emplace_back
用于:
records.emplace_back(1000);
Run Code Online (Sandbox Code Playgroud)
这将构建一个MyFatClass
就地对象,避免临时和额外的副本.
归档时间: |
|
查看次数: |
113 次 |
最近记录: |