Algorithm 头文件中的算法

这次介绍Algorithm中的算法按用法分类分别有:
  • 检查序列中元素属性的算法
  • 计算序列中有指定属性的元素个数的算法
  • 比较两个序列中元素的算法
  • 用来复制或移动序列的算法
  • 设置或改变序列中元素的算法
一、检查元素的属性
  • all_of() 算法会返回true,前提是序列中的所有元素都可以使谓词(一般用Lambad表达式来实现)返回true
  • any_of() 算法会返回true,前提是序列中的任意一个元素都可以使谓词返回true
  • none_of() 算法会返回true,前提是序列中没有元素可以使谓词返回true

使用样例:

vector<int> A = {5,5,6,7,4,8,2};
cout<<all_of(std::begin(A),std::end(A),
             [](int i){return i > 1;})<<endl;  // print 1 
二、序列的比较

equal() 有四个重载版本,其中两个是用==来比较的,另外两个是使用我我们所传入的函数对象参数来比较元素的

  • Edition1 : equal( iter1, end_iter1, iter2) //长度相等,并且对应的元素都相等则返回true,如果第一个序列长度长于第二个序列则结果未定义
  • Edition1 : equal( iter1, end_iter1, iter2 end _iter2) //长度相等,并且对应的元素都相等则返回true,否则结果总为false
  • Edition1 : equal( iter1, end_iter1, iter2, Funobj ) //使用Funobj定义的方法比较
  • Edition1 : equal( iter1, end_iter1, iter2 end _iter2, Funobj ) //使用Funobj定义的方法比较

使用样例:

/*
在笔者编译器中好像并没有四个参数的版本
并且三参数版本,第一个序列长度长于第二个序列则结果为false
原因就不深究了
*/

vector<int> A = {5,5,6,7,4,8,2};
vector<int> B = {5,5,6,7,4,8,2};
std::cout<<std::equal(std::begin(A),std::end(A) , std::begin(B))<<std::endl;// print 1
三、查找序列的不同之处

mismatch()

四、按字典序比较序列

lexicographical_compare()

五、序列的排列

next_permutation()

六、复制序列

copy_n()
copy_if()
reverse_copy()
unique_copy()

七、从序列中移除相邻的重复元素

unique()

八、旋转序列

rotate()

九、移动序列

move()

十、从序列中移除元素

remove()
remove_copy()
remove_if()
remove_ copy_if()

十一、设置和修改序列中的元素

fill()
fill_n()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值