cppreference.com 创建账户 页面 讨论 变换 查看 编辑 历史 std::shared_ptr C++ 内存管理库 std::shared_ptr 在标头<memory>定义 template<classT>classshared_ptr; (C++11 起) std::shared_ptr是一种通过指针保持对象共享所有权的智能指针。多个shared_ptr对象可持有同一对象。下列情况之一出现时销毁对象并解分...
std::shared_ptr 是一种通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可持有同一对象。下列情况之一出现时销毁对象并解分配其内存: 最后剩下的持有对象的 shared_ptr 被销毁; 最后剩下的持有对象的 shared_ptr 被通过 operator= 或reset() 赋值为另一指针。 用delete 表达式或在构造期间提供给...
shared_ptr(Y*ptr, Deleter d, Alloc alloc); (6) template<classDeleter,classAlloc> shared_ptr(std::nullptr_tptr, Deleter d, Alloc alloc); (7) template<classY> shared_ptr(constshared_ptr<Y>&r, element_type*ptr)noexcept; (8) template<classY> ...
std::swap(std::shared_ptr) Defined in header<memory> template<classT> voidswap(std::shared_ptr<T>&lhs,std::shared_ptr<T>&rhs)noexcept; (since C++11) Specializes thestd::swapalgorithm forstd::shared_ptr. Swaps the contents oflhsandrhs. Callslhs.swap(rhs). ...
unique_ptr(C++11) shared_ptr(C++11) Biblioteca de utilitários gerais Objectos de função−hash(C++11) Funções utilitárias pair−tuple(C++11) optional(C++17)−any(C++17) variant(C++17) Conversões de string(C++17) Formatting(C++20) ...
site will be in a temporary read-only mode in the next few weeks to facilitate some long-overdue software updates. Hopefully it won't take too long, but we all know how database migrations can sometimes turn evil. Please send any concerns/ideas/moral-support to comments@cppreference.com. ...
std::hash<std::shared_ptr> (C++11) Support du hachage pour std::shared_ptr (classe générique spécialisée) [edit] std::hash<std::type_index> (C++11) soutien de hachage pour std::type_index Original: hash support for std::type_index The text has been machine-translated via...
[3] https://en.cppreference.com/w/cpp/memory/shared_ptr/get[4] https://en.cppreference.com/w/cpp/language/copy_elision[5] https://www.boost.org/doc/libs/1_76_0/libs/rational/[6] https://www.boost.org/doc/libs/1_76_0/libs/utility/operators.htm...
weak_ptr std::shared_ptr<int> sp = std::make_shared<int>(42); std::weak_ptr<int> wp = sp; // 检查引用对象是否存在 if (auto locked = wp.lock()) { std::cout << *locked << std::endl; // 输出: 42 } else { std::cout << "对象已被销毁" << std::endl; } // 检查是...
weak_ptr std::shared_ptr<int> sp = std::make_shared<int>(42); std::weak_ptr<int> wp = sp; // 检查引用对象是否存在 if (auto locked = wp.lock()) { std::cout << *locked << std::endl; // 输出: 42 } else { std::cout << "对象已被销毁" << std::endl; } // 检查是...