【Boost】系列02:内存管理之scoped_ptr智能指针
智能指针,stl中有auto_ptr,boost的smart_ptr库有6种:
scoped_ptr,scoped_array,shared_ptr,shared_array,weak_ptr和intrusive_ptr.
scoped_ptr的拷贝构造函数和赋值操作符声明为私有,以禁止对智能指针的复制。
例1:
#include <boost/smart_ptr.hpp> #include <iostream> #include <string> using namespace std; using namespace boost;int main() {scoped_ptr<string> sps(new string("Hello Boost"));cout<<sps->size()<<endl; cout<<*sps<<endl;return 0; }
输出
11
Hello Boost
例2:
#include <boost/smart_ptr.hpp> #include <iostream> #include <string> using namespace std; using namespace boost; struct tag_file {tag_file(const char *file_name){cout<<"open file:"<<file_name<<endl;}~tag_file(){cout<<"close file"<<endl;}}; int main() {scoped_ptr<int> spi(new int);if (spi) //用bool语境测试 {*spi = 100;cout<<*spi<<endl;}spi.reset();assert(spi == 0);if (!spi){cout<<"scoped_ptr == null"<<endl;}scoped_ptr<tag_file> spf(new tag_file("a.txt"));return 0; }
输出
100
scoped_ptr == null
open file:a.txt
close file
【Boost】系列02:内存管理之scoped_ptr智能指针相关推荐
- 【Boost】系列03:内存管理之shared_ptr智能指针
最有价值的!最有用的引用计数型智能指针,可以被拷贝和赋值,可以作为STL容器的元素: 1,基本用法: #include <boost/smart_ptr.hpp> #include < ...
- 服务器设计系列:内存管理
服务器性能的关键在于内存.从收包到解析,到消息内存的申请,到session结构内存的申请都要小心处理,尽量减少内存数据copy,减少内存动态申请,减少内存检索.为达到这个目的,不同的地方有不同的方法, ...
- C++11 解决内存泄露问题的智能指针:shared_ptr、unique_ptr、weak_ptr
我们经常听到内存泄漏,但是对这个抽象的概念一直没有什么理解,比如产生内存泄漏又将如何,我平时写程序从来不考虑这个等等.这篇的目的:第一,给大家实验实验内存泄露带来的问题,让大家直观感受内存泄露.第二, ...
- Linux学习总结02——内存管理——Linux在X86上的虚拟内存管理
Linux内存管理之二:Linux在X86上的虚拟内存管理 本文档来自网络,并稍有改动. 前言 Linux支持很多硬件运行平台,常用的有:Intel X86,Alpha,Sparc等.对于不能够通用的 ...
- FreeSwitch系列之内存管理
1.sofia-sip库的内存管理 home-based 内存管理机制,在需要分配许多内存块的情况下非常有用.分配器是通过分配中心保存各个分配内存块的引用来实现的.当分配中心释放,所有它保持引用的内存 ...
- 【厚积薄发系列】C++项目总结13—智能指针和裸指针混用导致的崩溃问题
问题背景: C++项目中不得不提的就是指针,C++不像其他高级语言JAVA.Python等有自己的内存回收机制.C++的内存都需要开发自己来申请和释放,为了避免开发忘记释放自己申请的内存,C++引入了 ...
- 内存管理(链表,指针操作,繁琐)
内存管理 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- (六)boost库之内存管理shared_ptr
1.shared_ptr的基本用法 boost::shared_ptr<int> sp(new int(10)); //一个指向整数的shared_ptr assert(sp.unique ...
- 从零手写操作系统之RVOS内存管理模块简单实现-02
从零手写操作系统之RVOS内存管理模块简单实现-02 内存管理分类 内存映射表(Memory Map) Linker Script 链接脚本 语法 基于符号定义获取程序运行时内存分布 基于 Page ...
最新文章
- .net中实现拖拽控件
- WinForm实现简单的拖拽文件到出题的功能(C#)(3)
- 在 Windows 下部署 Go 语言环境
- 计算机专业复试面试题难吗,计算机考研复试,别想的太难了!
- Win10硬盘安装器(WinNTSetup 64位) v3.9.4 中文绿色版
- “人类高质量数据”如何训练计算机视觉模型?
- popupWindow在5.0版本以下不显示的问题
- dw2017不显示动画_10个创建2017年动画视频的最佳工具
- phpmywind 调取导航
- java 稀疏贝叶斯算法_稀疏贝叶斯学习(SparseBayesianLearning).PDF
- 计算机毕业设计ssm图书馆自习室占座选座zg09h系统+程序+源码+lw+远程部署
- mysql写了代码如何看表_mysql之单表查询__我自己敲的代码
- 小米手机页面显示android,小米手机连接电脑不显示文件怎么办?
- 挖到这个高危SSRF漏洞,我和我的小伙伴们都惊呆了!
- Queuing(矩阵快速幂)
- (免费分享)基于springboot医药进销存系统
- 2017第3周二假期里该做的事
- scratch案例——星星猎手
- v8,spidermonkey,chakra,spidermonkey四大主流JS引擎安装教程
- TLWR742N路由器服务器无响应,TP-Link TL-WR742N路由器限制网速怎么设置
热门文章
- Excel VBA(宏):添加宏
- js-比较两个日期的大小
- knockoutJS学习笔记06:ko数组与模板绑定
- 计算机程序的思维逻辑 (12) - 函数调用的基本原理
- 按钮是什么意思_汽车里的Rear按键是什么意思?
- OWASPTop10安全风险与防护
- windows主机加固和评测
- 浅谈Handler机制
- java冒泡排序算法代码降序_冒泡排序(起泡排序)算法及其C语言实现
- html 点击文本框则选中,JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。...