如何将没有构造函数参数的对象放置到STL容器中
How to emplace object without constructor arguments to STL constainer?
假设我有一个类,它的构造函数没有参数,它的对象的STL容器:list<Object> lst;
是否有一种方法来插入一个新的对象在地方?
我知道像lst.push_back(Object());
这样的东西会工作,同样快,因为它会使用移动构造函数,但是似乎有点奇怪的是,没有函数可以简单地在列表的末尾创建新对象而不带任何参数,而已经有了可以适合那个地方的位置。
如果这实际上是不可能的,你能提供一些解释吗?
emplace_back()
就是这样做的。
只需使用lst.emplace_back();
,该函数将在列表的末尾创建一个对象。
您可以使用lst.emplace_back();
相关文章:
- 用C++中的CPerson(类)类型的对象初始化STL矢量
- 对象 C++ 向量的 STL 容器
- 如何复制存储在数组中的 STL 对象?
- 删除包含包含动态对象的 STL 容器的智能指针
- 如何使用 STL 排序对具有模板专用化的自定义类对象进行排序?
- 为什么STL优先级队列错误地分配了我的类对象
- 在函数中实例化的 STL 对象正在占用堆栈或堆上的内存?
- 将对象(如 STL 对象)传入和传出静态库是否安全
- 如何在 MPI 中的 std::map 等C++中传递 STL 对象的消息
- 如何在共享内存(C++)中存储stl对象
- C++STL对象的内存分配
- gdb:将内存地址强制转换为 STL 对象
- 共享库与接口中STL对象的GCC兼容性
- 在进程之间移动STL对象
- 将STL对象传递给DLL
- 是否建议不要将大型STL对象作为值存储到std::unordered_map中?
- 我如何覆盖队列STL对象中的一些函数
- 将一种类型的STL对象存储到另一种类型的有效方法
- 使STL对象线程安全的标准方法
- 从函数返回STL对象而不触发move