#include<algorithm>
“泛型”:可操作在多种容器上
1) find() 依赖迭代器和迭代器操作实现,本身不执行容器操作
2) accumulate() 三参数,头两个元素是累加的元素范围,第三个参数是累加的初值
3) find_first_of() 四参数,在第一段范围内查找与第二段范围中任意元素匹配的元素,返回一个迭代器
4) fill() 三参数,头两个元素是元素范围,第三个参数是值
5) fill_n() 三个参数,一个迭代器/一个计数器/一个值
不能给在空容器上调用此函数,除非第一个参数为插入迭代器
6) copy()
7) replace() 四参数,两迭代器,初始值及目标值,——替换序列中的值
replace_copy() ——创建新的副本
8) sort() 两参数,两迭代器,排序,使用(<)操作符
9) unique() 两参数,两迭代器,删除相邻的重复元素
并没有真的删除,而是将无重复元素复制到序列的前端
10)count_if() 三参数,两迭代器,一谓词函数,用于统计满足函数条件的个数
三种迭代器
1) 插入迭代器 与容器绑定在一起,实现在容器中插入元素
back_inserter front_inserter inserter(需指定插入起始位置)
2) iostream迭代器 用于迭代遍历所关联的IO流
3) 反向迭代器 实现向后遍历,++运算将访问前一个元素,--运算将访问后一个元素
迭代器的分类
1) 输入迭代器 读,不能写;只支持自增运算 istream_iterator
2) 输出迭代器 写,不能读;只支持自增运算 ostream_iterator
3) 前向迭代器 读和写;只支持自增运算 需要前向迭代器的泛型算法有replace
4) 双向迭代器 读和写;支持自增和自减运算,泛型算法包括reverse; map、set和list提供双向
5) 随机访问迭代器 读和写;支持完整的迭代器算术运算,string、vector和deque容器定义的迭代器都是随机访问迭代器