设为首页 加入收藏

TOP

C++primer(第五版)第十章 泛型算法(二)
2015-07-20 17:24:15 来源: 作者: 【 】 浏览:8
Tags:primer 第五 算法
h_back)、front_inserter(调用push_front)和inserter(插入到迭代器某个指定位置的前面);这些插入迭代器前面章节都做了详细介绍;

4.2 iostream迭代器

有两类:istream_iterator读取输入流、ostream_iterator向一个输出流写数据。

istream_iterator in(is); //in从输入流is读取类型为T的值

istream_iterator end; //读取类型为T的值的istream_iterator迭代器,表示尾后位置;

ostream_iterator out(os); //out将类型为T的值写到输出流os中;

ostream_iterator out(os,d); //out将类型为T的值写到输出流os中,每个值后面都输出一个d。d指向一个空字符结尾的字符数组。

4.3反向迭代器

反向迭代器:就是从尾元素向首元素反向移动的迭代器。知道迭代器,从而想想只是方向颠倒,就能更好的去理解反向迭代器。

反向迭代器的目的:表示元素范围,而这些范围是不对称的,这导致一个重要的结果:当我们从一个普通迭代器初始化一个反向迭代器,或是给一个反向迭代器赋值时,结果迭代器与原迭代器指向并不是相同的元素。

5.泛型算法结构

算法操作的五个迭代器:输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器。

输入迭代器:只读,不写;单遍扫描,只能递增;

输出迭代器:只写,不读;单遍扫描,只能递增;

前向迭代器:可读写;多遍扫描,只能递增;

双向迭代器:可读写;多遍扫描,可递增递减;

随机访问迭代器:可读写;多遍扫描,支持全部迭代器运算

总结C++11特性:

1.lambda表达式

本章上面有重点讲解,并有运用的形式;我们可以将它理解为一个为命名的内联函数。

2.lambda尾置返回类型

例子:

transform(vi.begin(),vi.end(),vi.begin(),[](int i)->int{if(i<0) return -i;else return i;});

传递给transform的第四个参数是一个lambda,它的捕获列表是空的,接受单一int参数,返回一个int值。它的函数体是一个返回其参数的绝对值的if语句。

3.bind函数

本章上面对bind函数做了讲解,我们记住_n的参数理解,就能够运用它。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 10566 && POJ 2507 C.. 下一篇BZOJ 3879 SvT 后缀树+虚树

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python 数据分析与可 (2025-12-26 21:51:20)
·从零开始学Python之 (2025-12-26 21:51:17)
·超长干货:Python实 (2025-12-26 21:51:14)
·为什么 Java 社区至 (2025-12-26 21:19:10)
·Java多线程阻塞队列 (2025-12-26 21:19:07)