【足迹C++primer】34、泛型算法结构

泛型算法结构

5类迭代器

算法所要求的迭代器操作可以分为5个迭代器类别。
输入迭代器 只读,不写,单遍扫描,只递增
输出迭代器 只写,不读,单遍扫描,只递增
前向迭代器 可读写,多遍扫描,只递增
双向迭代器 可读写,多遍扫描,可递增递减
随机访问迭代器 可读写,多遍扫描,,支持全部迭代器运算

迭代器类别

输入迭代器:可以读取序列中的元素。
支持: ==、!=、++、*(解引用)、->、(*it).member。
输出迭代器:只读不写
支持:++、*(解引用)
前向迭代器:可读写。
双向迭代器:可正反双向读写
随机范围迭代器:常量时间内范围序列中任意元素。

算法形参模式

一般算法就下面4中形式:
alg(beg, end, other args);
alg(beg, end, dest, other args);
alg(beg, end, beg2, other args);
alg(beg, end, beg2, end2, other args);

算法命名规范

接受谓词参数来代替<或==运算的算法,以及那些不接受额外参数的算法,通常都是重载的函数。

_if版本的算法

find(beg, end,val); //查找输入范围内val第一次出现的位置
find_if(beg, end, pred); //查找第一个令pred为真的元素

区分拷贝元素的版本和不考贝的版本

一般结果写到额外的目的空间的算法都在名字后面加_copy
reverse(beg,end); //反转输入范围中元素的顺序
reverse_copy(beg, end, dest); //将元素按逆序拷贝到dest
还有的提供_copy和_if版本
比如remove

有:remove_if、remove_copy_if两个版本!!!!


PS:哼!!为毛我又一篇博客消失了!!!被CSDN吃了???我还没存档!!!尼玛啊,要不要这么坑,不过发火大爷我还是会继续坚持的,尼玛有本事吧我博客全删了。。。。明明没有什么不和谐的啊大哭又不会被查水表- -~~,⊙﹏⊙b为什么要删我博客。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值