智能指针,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智能指针相关推荐

  1. 【Boost】系列03:内存管理之shared_ptr智能指针

    最有价值的!最有用的引用计数型智能指针,可以被拷贝和赋值,可以作为STL容器的元素: 1,基本用法: #include <boost/smart_ptr.hpp> #include < ...

  2. 服务器设计系列:内存管理

    服务器性能的关键在于内存.从收包到解析,到消息内存的申请,到session结构内存的申请都要小心处理,尽量减少内存数据copy,减少内存动态申请,减少内存检索.为达到这个目的,不同的地方有不同的方法, ...

  3. C++11 解决内存泄露问题的智能指针:shared_ptr、unique_ptr、weak_ptr

    我们经常听到内存泄漏,但是对这个抽象的概念一直没有什么理解,比如产生内存泄漏又将如何,我平时写程序从来不考虑这个等等.这篇的目的:第一,给大家实验实验内存泄露带来的问题,让大家直观感受内存泄露.第二, ...

  4. Linux学习总结02——内存管理——Linux在X86上的虚拟内存管理

    Linux内存管理之二:Linux在X86上的虚拟内存管理 本文档来自网络,并稍有改动. 前言 Linux支持很多硬件运行平台,常用的有:Intel X86,Alpha,Sparc等.对于不能够通用的 ...

  5. FreeSwitch系列之内存管理

    1.sofia-sip库的内存管理 home-based 内存管理机制,在需要分配许多内存块的情况下非常有用.分配器是通过分配中心保存各个分配内存块的引用来实现的.当分配中心释放,所有它保持引用的内存 ...

  6. 【厚积薄发系列】C++项目总结13—智能指针和裸指针混用导致的崩溃问题

    问题背景: C++项目中不得不提的就是指针,C++不像其他高级语言JAVA.Python等有自己的内存回收机制.C++的内存都需要开发自己来申请和释放,为了避免开发忘记释放自己申请的内存,C++引入了 ...

  7. 内存管理(链表,指针操作,繁琐)

    内存管理 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status  ...

  8. (六)boost库之内存管理shared_ptr

    1.shared_ptr的基本用法 boost::shared_ptr<int> sp(new int(10)); //一个指向整数的shared_ptr assert(sp.unique ...

  9. 从零手写操作系统之RVOS内存管理模块简单实现-02

    从零手写操作系统之RVOS内存管理模块简单实现-02 内存管理分类 内存映射表(Memory Map) Linker Script 链接脚本 语法 基于符号定义获取程序运行时内存分布 基于 Page ...

最新文章

  1. .net中实现拖拽控件
  2. WinForm实现简单的拖拽文件到出题的功能(C#)(3)
  3. 在 Windows 下部署 Go 语言环境
  4. 计算机专业复试面试题难吗,计算机考研复试,别想的太难了!
  5. Win10硬盘安装器(WinNTSetup 64位) v3.9.4 中文绿色版
  6. “人类高质量数据”如何训练计算机视觉模型?
  7. popupWindow在5.0版本以下不显示的问题
  8. dw2017不显示动画_10个创建2017年动画视频的最佳工具
  9. phpmywind 调取导航
  10. java 稀疏贝叶斯算法_稀疏贝叶斯学习(SparseBayesianLearning).PDF
  11. 计算机毕业设计ssm图书馆自习室占座选座zg09h系统+程序+源码+lw+远程部署
  12. mysql写了代码如何看表_mysql之单表查询__我自己敲的代码
  13. 小米手机页面显示android,小米手机连接电脑不显示文件怎么办?
  14. 挖到这个高危SSRF漏洞,我和我的小伙伴们都惊呆了!
  15. Queuing(矩阵快速幂)
  16. (免费分享)基于springboot医药进销存系统
  17. 2017第3周二假期里该做的事
  18. scratch案例——星星猎手
  19. v8,spidermonkey,chakra,spidermonkey四大主流JS引擎安装教程
  20. TLWR742N路由器服务器无响应,TP-Link TL-WR742N路由器限制网速怎么设置

热门文章

  1. Excel VBA(宏):添加宏
  2. js-比较两个日期的大小
  3. knockoutJS学习笔记06:ko数组与模板绑定
  4. 计算机程序的思维逻辑 (12) - 函数调用的基本原理
  5. 按钮是什么意思_汽车里的Rear按键是什么意思?
  6. OWASPTop10安全风险与防护
  7. windows主机加固和评测
  8. 浅谈Handler机制
  9. java冒泡排序算法代码降序_冒泡排序(起泡排序)算法及其C语言实现
  10. html 点击文本框则选中,JS事件 内容选中事件(onselect)选中事件,当文本框或者文本域中的文字被选中时,触发onselect事件,同时调用的程序就会被执行。...