c++ STL Algorithm简单总结备忘

前言

有感于对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

排序

二分查找

集合类操作

最大最小元素

排列

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

参考文献

猜你喜欢

转载自blog.csdn.net/lipeng08/article/details/54428744