《Effective C++》读书笔记之item54:让自己熟悉包括TR1在内的标准程序库

来源:互联网 发布:最好用选股软件 编辑:程序博客网 时间:2024/05/01 17:29

1.C++98中的标准程序库包括:

  • STL(标准模板库):包括容器、迭代器、通用算法、函数对象、适配器(容器适配器和函数对象适配器)。
  • 输入输出流:包括用户自定缓冲功能、国际化IO以及预定义的对象cin、cout、cerr和clog。
  • 国际化支持:包括多区域支持,促进unicode。
  • 数值处理:包括数值模板和纯数值数组。
  • 异常:一个异常处理体系。
  • C89标准程序库。

2.TR1表示Technical Report 1,它是一份规范,一个好的实现是Boost库。它的命名空间为std::tr1。

PS:本书写于2005年,当时的TR1标准还有所变更。2011年C++新标准包括了tr1中的大部分内容。关于TR1的维基百科条目:http://zh.wikipedia.org/wiki/C%2B%2B_Technical_Report_1 C++11的维基百科条目:http://zh.wikipedia.org/wiki/C%2B%2B0x。

3.TR1的内容:包括14个组件:

  • 智能指针:包括tr1::shared_ptr和tr1::weak_ptr。
  • tr1::function:表示任何符合目标的“可调用物”。
  • tr1::bind:STL绑定器bind1st和bind2rd的扩展。
  • Hash tables:用来实现哈希表(无任何可预期次序)的集合、多集合、图和多图。
  • 正则表达式:提供正则表达式的功能。
  • Tuple(元组):与Python中的元组类似。
  • tr1::array:是个STL化的数组,大小固定,不使用动态内存。
  • tr1::mem_fn:构造和成员函数指针一致。
  • tr1::reference_wrapper:一个“让引用的行为更像对象”的设施。
  • 随机数生成工具:比rand()强大得多。
  • 数学特殊函数:包括Lagurange多项式、Bessel函数等数学函数。
  • C99兼容扩充。
  • Type traits:一组traits class,用来提供类型的编译期信息。
  • tr1::result_of:是个模板,用来推导函数调用的返回类型。 
原创粉丝点击