C++ primer学习笔记 第11章

1.实现共同的操作叫 算法;可以操作在多种容器类型上叫 泛型。

2.标准算法固有地独立于类型。

3.算法 永不 执行容器提供的操作。算法 从不 添加或删除元素。

4.泛型算法头文件 algorithm;泛化的算术算法 头文件 numeric。

5.写容器元素的算法:fill和fill_n。灾难性的后果!:对指定数目的元素做写入运算,或者写到目标迭代器的算法,都不检查目标的大小是否足以存储要写入的元素。

   不能在没有元素的空容器上调用fill_n函数。

6.unique没有删除重复元素,而是将无重复的元素复制到序列的前端,从而覆盖相邻的重复元素。unique返回迭代器指向超出五重复的元素范围末端的下一位置。

7.算法不直接修改容器的大小。如果需要添加或删除元素,则必须使用容器操作。erase

8.谓词是做某些检测的函数,返回用于条件判断的类型,指出条件是否成立。

9.sort算法:使words按字典次序排列;stable_sort保留相等元素的原始相对位置。这两个都是重载函数。

10.插入器:

     1).back_inserter,创建使用push_back实现插入的迭代器。

     2).front_inserter,使用push_front实现插入。只有当容器提供push_front操作时才能使用。在容器的第一个元素前面插入。

     3).inserter,使用insert实现插入操作。

11.

12.流迭代器定义 操作:自增、解引用、赋值。另可比较istream迭代器是否相等。

13.

14.ostream_iterator没有->操作符。

15.对于反向迭代器,++运算将访问前一个元素,而--运算则访问下一个元素。

16.若需以降序排列vector,只需向sort传递一对反向迭代器。流迭代器不能创建 反向迭代器。

17.

18.

      输入:find、accumulate  copy

      输出:copy

      前向:replace  unique

      双向:reverse

      随机:sort

19.带有谓词函数形参的算法,其名字带有后缀_if;实现复制的算法版本带有_copy后缀。

20.

21.与对应的泛型算法不同,list容器特有的操作能添加和删除元素。

22.list容器提供的merge和splice运算会破坏他们的实参,比如当实参对象的元素合并到调用merge函数的list对象时,实参对象的元素被移出并删除。

23.copy(lst.begin(),lst.end(),back_inserter(vec));

24.istream_iterator初始化int型vector对象:vector<int> ivec(cin_it,end_of_stream);

25.列出五种迭代器类型及其各自支持的操作。

      输入迭代器:          ==  !=  ++  *  ->

      输出迭代器              ++ *

      前向迭代器              ==  !=  ++  *  ->

      双向迭代器              ==  !=  ++  *  ->  -- 

      随机访问迭代器       ==  !=  ++  *  ->  --  <  <=  >   >=  +  += 

                                        -(迭代器-整型值迭代器-迭代器)  -=  []

26.list拥有双向迭代器,vector有随机访问迭代器。

27.list容器上不能使用需要随机访问迭代器的泛型算法,如sort算法。泛型算法unique虽然可以用在list上,但其性能会降低。

28.list容器的unique操作真正删除了重复的元素,从而无需再使用容器的erase操作来删除重复元素。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值