std::shared_ptr
来源:互联网 发布:linux怎样启动tomcat 编辑:程序博客网 时间:2024/05/20 19:18
它的使用就像真正的指针一样,不过它替我们管理了内存。
我们应该管理一个个内存对象,
shared_ptr<string> obj(new string("target"));
由于shared_ptr管理的是一个对象指针,所以管理的资源也不仅仅是内存,同时还可能有:文件描述符,数据库连接等资源。
所以必要时需要提供相应的析构函数
//第一个参数为管理对象,类型为Type1//第二参数为可被调用对象:lambda,函数,operator()等//可调用对象的参数类型为第一个参数类型Type1shared_ptr(new obj,callable_object);//此处伪代码用shared_ptr管理mysql连接//自己建立lambda关闭连接shared_ptr(new MYSQLConnection(user,pass,port), [](MYSQLConnection *conn) { close(conn); });
当管理类似数组的时候
void destruct(string * p){delete []p;}auto arrPtr=make_shared(new string[10],destruct);
当进行指针移动的时候,不能使用arrPtr++
应该:
vector<shared_ptr<string>> vstr;
然后使用迭代器进行指针访问。
0 0
- std::shared_ptr
- std::shared_ptr
- std::shared_ptr 和 std::weak_ptr
- std::tr1::shared_ptr
- std::transform & shared_ptr
- std::tr1::shared_ptr
- 找不到std::shared_ptr
- 浅析std::shared_ptr::owner_before
- std::shared_ptr简介
- 关于std:auto_ptr std:shared_ptr std:unique_ptr
- boost::shared_ptr与std::tr1::shared_ptr
- c++中的std::shared_ptr和std::weak_ptr
- std::unique_ptr和std::shared_ptr的用法
- C++ std::tr1::shared_ptr使用
- std::tr1::shared_ptr源码赏析
- C++ std::tr1::shared_ptr使用说明
- std::shared_ptr的巧妙应用
- C++ std::tr1::shared_ptr使用
- jquery eval解析JSON中的注意点介绍
- 洛谷 P1070 道路游戏
- 数据结构-线性表
- php-beast加密php源码
- 93. Restore IP Addresses
- std::shared_ptr
- DOM 学习之—添加+-按钮
- 欢迎使用CSDN-markdown编辑器
- API文档
- effective C++之析构函数不该抛出异常
- Unity&Shader基础篇-绘图2D图形
- 随便想到,群聊天的数据库简单设计
- HDU 1896 Stones (优先队列的应用)
- D3D画文字