有没有办法不为 push_back() 创建临时变量
Is there any way of not creating temp variable for push_back()?
std::vector<Foo> v;
v.push_back(Foo());
这是为 Foo 创建一个临时变量,还是像 emplace_back(( 一样工作?
Foo()
创建一个临时的,尽管理论上编译器由于as-if规则而被允许对其进行优化。
您可以使用vector::emplace_back
将新元素追加到容器的末尾。该元素是通过
std::allocator_traits::construct
构造的, 通常使用 placement-new 在容器提供的位置就地构造元素。
相关文章:
- 为什么在堆栈和堆上创建变量会产生相同的程序集代码?
- 如何在循环中动态创建变量(c++)
- 创建变量之间的运算符排列
- 是否有一种方法可以调用一个函数,而不会创建变量,而不会创建变量
- 在使用该名称创建变量后调用本机 C 函数
- C++ 仅当模板参数为 true 时才创建变量
- 创建变量实例有什么不同?
- 是否可以在不为该数组创建变量的情况下将数组作为参数传递到函数中?
- 为什么在默认构造函数中使用括号会导致创建变量?
- 动态创建变量名称的替代方法
- C++:使用void创建变量
- 如何在Arduino中从SD卡创建变量
- 应该如何使用C++11 Regex从存储在文本文件中的表中创建变量
- 从文本文件导入的不同线类型创建变量
- 创建变量的别名
- 避免在此模板代码中创建变量
- 类方法中创建变量的作用域
- 动态创建变量c++ /cli . net
- 使用来自文件的输入创建变量
- 创建变量名别名的方法