c++ STL Algorithm简单总结备忘

本文针对C++ STL中的Algorithm部分进行了详细的介绍与归纳,包括非修改算法如all_of、any_of等,以及修改序列类算法如partition等。同时,还探讨了序列查找、排序、集合类操作等,并附带了一些实用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

有感于对stl中algorithm类别的不甚了解,于是最近几天利用白天或者晚上零碎的时间对stl中的algorithm的东西进行了简单的浏览,测试和归纳。

算法分类

非修改算法

  • 序列满足某一条件
    all_of返回bool类型,是否全部满足某一条件
    any_of是否有某一个满足某一条件
    none_of是否任何一个都不满足某一条件
  • 遍历
    for_each 对序列中的元素进行某一个操作

    例如我喜欢用的输出方法:
    for_each(v1.begin(), v1.end(), [](int x){cout << x << " "; }); cout << endl;
    
  • 查找
    find查找某一个元素
    find_if查找满足某一个条件第一个元素位置
    find_if_not查找不满足条件的第一个元素位置
    奇葩的几个
    find_end查找一个序列(参数2)在另一个序列(参数1)中最后出现的位置
    find_first_of查找在一个序列(参数2)某一个元素在另一个序列(参数1)中第一次出现的位置
    adjacent_find查找在一个序列中连续两个元素第一次满足某一个条件的位置
  • 统计
    count 统计元素个数
    count_if统计满足条件的元素个数
  • 比较
    mismatch两个序列第一个不匹配的位置
    equal两个序列是否完全一样
  • 序列查找
    search查找一个序列在另一个序列第一次出现的位置(与find_end对应,也是奇葩)
    search_n查找一个n个val的序列在另一个序列第一次出现的位置

修改序列类

分区partition

排序

二分查找

集合类操作

最大最小元素

排列

内容有空的话,会不断追加

参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值