map+shared_ptr原理
时间: 2024-01-10 20:04:29 浏览: 358
C++中的auto_ptr智能指针的作用及使用方法详解
shared_ptr 是 C++11 引入的智能指针,用于管理动态分配的内存。它和原始指针相比,可以自动释放内存并防止内存泄漏。map 是 C++ STL 提供的关联容器,用于存储键值对。
在使用 map 存储 shared_ptr 时,可以通过以下步骤实现:
1. 创建一个 map 对象,指定键的类型和值的类型。例如:`std::map<int, std::shared_ptr<MyClass>> myMap;`。
2. 通过 make_shared 或 new 关键字创建一个 shared_ptr 对象。
3. 将 shared_ptr 对象作为值插入到 map 中,同时指定对应的键。例如:`myMap = std::make_shared<MyClass>();`。
4. 可以通过键访问 map 中的值,并使用 shared_ptr 进行操作。例如:`myMap->doSomething();`。
map 的键是唯一的,如果插入重复的键,会覆盖旧值。当 map 对象不再需要时,会自动释放内存。
阅读全文