首页  >  文章  >  后端开发  >  `std::vector::push_back()` 是否复制对象?

`std::vector::push_back()` 是否复制对象?

DDD
DDD原创
2024-11-03 18:51:29596浏览

Does `std::vector::push_back()` Copy Objects?

std::vector 是否使用 push_back 复制对象?

使用 Valgrind 进行广泛调查后,有人建议 std::vector创建推回到向量中的任何对象的副本。这个说法准确吗?向量能否在不复制对象的情况下维护对对象的引用或指针?

答案:

是的,std::vector::push_back()实际上创建了所提供参数的副本并将其添加到向量中。如果您打算在向量中存储指向对象的指针,请使用 std::vector而不是 std::vector

但是,您必须保证指针引用的对象保持有效,同时向量维护对它们的引用。基于 RAII 惯用法的智能指针为这个问题提供了解决方案。

以上是`std::vector::push_back()` 是否复制对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn