C++ 在 STL 容器中使用智能指针

标签 c++ stl smart-pointers

知道这些容器已经管理了内存,在 STL 容器( vector 、映射等...)中使用智能指针有什么好处?

例子:

std::vector<std::unique_ptr<int>>

代替

std::vector<int*>

最佳答案

如果对象是指针,管理指针占用的内存是不够的。您还需要管理指针指向的内容。存储指向的对象而不是指针是个好主意(在您的示例中 std::vector<int> 是合适的),但是,如果您有不可能的多态对象。

关于C++ 在 STL 容器中使用智能指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26513680/

相关文章:

c++ - 如何在 QRC 文件中的另一个 qresource 下添加 qresource

c++ - 使用 C++,在制作控制台应用程序时,cin 是否有办法接受输入的下一个字符并继续而不按回车键?

c++ - size_t vs int 警告

c++ - 获取最接近 std::set 中给定元素的元素

c++ - 为什么 std::get_deleter() 总是产生 nullptr

c++ - 尝试使用 glTexImage2D 加载 2d 纹理,但只是变得空白

c++ - 为什么 Dlib 会编译 8000 多个函数?

c++ - 我可以直接调用 operator() 而不创建临时对象吗?

c++ - CustomDialogEx 的 shared_ptr 或 unique_ptr

c++ - 将 std::unique_ptr 推回 std::vector 时编译器不会失败