The C++ Standard Library --- A Tutorial Reference 读书笔记
2016-01-04 17:55
316 查看
5.2 Smart Pointer(智能指针)
shared_ptr的aliasing构造函数,接受一个shared pointer和一个raw pointer。它允许你掌握一个事实:某对象拥有另一个对象。例如:
weak_ptr是shared-ptr的帮手,用来共享但不拥有对象,它的use_count()返回的对象是被shared_ptr拥有的次数,而且weak_ptr可以为空->expired()结果是true;lock()会产出一个shared-ptr。
class unique_ptr继承auto_ptr(现已不被认可),可以release()(shared-ptr不可以release是因为可能有其他shared-ptr指向它对象)。
对array,unique_ptr提供偏特化版本,而不用定义自己的deleter。例如:
std::unique_ptr<std::string[]> up(new std::string[10]);
unique_ptr与shared_ptr的deleter接口不同,它必须指明deleter的类型作为第二个template实参。
5.3 数值的极值
书中的例子用到 cout << boolalpha;
boolalpha,函数名称,功能是把bool值显示为true或false。
shared_ptr的aliasing构造函数,接受一个shared pointer和一个raw pointer。它允许你掌握一个事实:某对象拥有另一个对象。例如:
struct X { int a; }; shared_ptr<X> px(new X); shared_ptr<int> pi(px,&px->a);
weak_ptr是shared-ptr的帮手,用来共享但不拥有对象,它的use_count()返回的对象是被shared_ptr拥有的次数,而且weak_ptr可以为空->expired()结果是true;lock()会产出一个shared-ptr。
class unique_ptr继承auto_ptr(现已不被认可),可以release()(shared-ptr不可以release是因为可能有其他shared-ptr指向它对象)。
对array,unique_ptr提供偏特化版本,而不用定义自己的deleter。例如:
std::unique_ptr<std::string[]> up(new std::string[10]);
unique_ptr与shared_ptr的deleter接口不同,它必须指明deleter的类型作为第二个template实参。
5.3 数值的极值
书中的例子用到 cout << boolalpha;
boolalpha,函数名称,功能是把bool值显示为true或false。
相关文章推荐
- C++11 并发指南四(<future> 详解一 std::promise 介绍)
- 后现代的系统编程语言——C++
- C语言链表的概念
- 移动开发C++编程语言学习路线图
- 【c/c++】转换构造函数
- C/C++内存泄漏及检测
- c++中*与&的区别
- C语言获取时间的集中方法
- C++单链表
- c/c++获取当前的工作的路径
- 万年历程序--C++编写
- C语言概览
- c/c++中的相对路径和绝对路径
- C++语言为什么跨平台?
- C++文件读写详解(ofstream,ifstream,fstream)
- C++11多线程(四):lock详解
- 【C++拾遗】 C++虚函数实现原理
- operator new在C++中的各种写法
- 使用macbook的Xcode创建并运行C++的hello world
- C++怎么让函数返回固定长度字符串,比如给“zhangsan"返回原字符串加上4各空格,给“lisi"返回"lisi"加6