我怎样才能完美地将参数转发到 STL 集合
How can I perfectly forward arguments to a STL collection?
如何将创建对象的参数完美地转发到 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
对象,避免临时和额外的副本。
相关文章:
- 将函数参数完美转发到函数指针:按值传递呢?
- 转发变量参数列表以模拟 std::thread
- 在按值调用 (c++) 中转发构造函数参数
- 存储稍后要转发的变量参数
- C++使用默认模板参数键入别名和转发声明
- 是否可以在不扣除的情况下将模板参数转发到 make_*?
- 可变参数模板参数转发使用逗号运算符
- 在可变参数函数中转发特定范围的参数
- 可变参数模板:将整数参数完美转发到 lambda
- 我可以std::在fold表达式中转发参数吗
- 如何构造一个 std::variant 类型对象,其自身 Templated 和构造函数转发参数
- C++或宏魔术来生成方法和转发参数
- C 从函数指针推导的转发参数时无隐式转换
- 如何施放转发参数包
- 转发参数时应该使用()或{}吗
- 在标签调度中转发参数
- 函数转发参数而不执行任何操作
- 正在转发参数
- 何时使用std::forward来转发参数
- C++:转发参数包和std::tuple/数组的和