C++ Primer Plus:第十六章 - string类和标准模板库

0、本章内容:

标准C++ string类。

模板auto_ptr、unique_ptr和share_ptr。

标准模板库(STL)。

容器类。

迭代器。

函数对象(functor)。

STL算法。

模板initiaslzer_list。

1、string类:

1.1 构造字符串

string实际上是模板具体化basic_string< char>的一个typedef,同时省略了与内存管理相关的参数。

1.2 string类输入

指定分界字符后,换行符被视为常规字符。

1.3 使用字符串

String对全部6个关系运算符都进行了重载。

1.4 string还提供了哪些功能

capacity返回占用内存,reserve申请内存。

1.5 字符串种类

char、wchar_t、char16_t、char32_t。

2、智能指针模板类:

2.1 使用智能指针

三个智能指针模板都定义了类似指针的对象,可以将new获得的地址赋给这种对象。
智能指针类都带有一个explicit构造函数,因此不需要自动将指针转换为智能指针对象。

2.2 有关智能指针的注意事项

auto_ptr、unique_ptr建立所有权、share_ptr引用计数。

2.3 unique_ptr为何优于auto_ptr

unique_ptr能够区分是否安全,而且有一个可用于数组的变体。

2.4 选择智能指针

share_ptr包含一个显式构造函数,能够把右值unique_ptr转换为share_ptr。

3、标准模板库:

STL提供了一组表示容器、迭代器、函数对象和算法的模板。

3.1 模板类vector

3.2 可对矢量执行的操作

3.3 对矢量可执行的其他操作

可以定义适用于所有容器的非成员函数。

3.4 基于范围的for循环

foreach不能修改容器内容,只是创建临时变量来显示输出。

4、泛型编程:

4.1 为何使用迭代器

4.2 迭代器类型

输入、输出、正向、双向、随机访问。

4.3 迭代器层次结构

4.4 概念、改进和模型

迭代器为改进,而非继承。

4.5 容器种类

不能将类型对象存储在容器中,除非类型是可复制构造和可赋值的。

4.6 关联容器

set、multiset、map、multimap。

4.7 无序关联容器(C++11)

5、函数对象:

5.1 函数符概念

一元函数、二元函数、一元谓词、二元谓词。

5.2 预定义的函数

transform有两个版本。

5.3 自适应函数符和函数适配器

可以将二元函数修改为一元函数。

6、算法:

6.1 算法组

6.2 算法的通用特征

6.3 STL和string类

next_permutation算法将区间内容转换为下一种排列方式。

6.4 函数和容器方法

remove函数有多用性。

6.5 使用STL

7、其他库:

7.1 vector、valarray 和 array

valarray类没有begin和end方法,是对象不是指针。

slice对象参数为其实索引、索引数、跨距。

7.2 模板initializer_list(C++11)

不能进行隐式的缩窄转换。

7.3 使用initializer_list

不能修改initializer_list中的值,因为initializer_list迭代器返回类型为const。

8、总结:

null。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值