技术: 探究一下STL常用算法

以前学习STL的时候, 只是把常用的(容器)算法说了一下, 大部分算法都是一笔带过的.

不妨参考一下我上传的 学习记录

引子

正文

常用算法汇总

按照传统的可变序列和非可变序列的分类方法可能不太好, 下面按照功能分类.

  • 查找算法, 大致13个, 常用的有 adjacent_find, binary_search, count, count_if, equal_range(), find(), find_if.
  • 排序算法, 大致有14个, 常用的有 merge, sort, random_shuffle, reverse
  • 拷贝替换删除, 大致有15个, 常用的有 copy, replace, replace, swap
  • 算数和生成算法, 大致10个, 常用的有 accumulate, fill
  • 集合算法, 4个, set_union(), set_intersection(), set_difference
  • 遍历算法, for_each, transform

remove_if算法

1
2
3
4
std::vector<int> c { 1,2,3,4,5,6,7 };
int x = 5;
c.erase(std::remove_if(c.begin(), c.end(), [x](int n) { return n < x; } ), c.end());
v.erase(std::remove_if(v.begin(), v.end(), [x](int n) { return n < x; } ), v.end());

尾巴

参考资料

  1. http://en.cppreference.com/w/cpp/algorithm
    (cppreference的参考手册)
文章目录
  1. 1. 引子
  2. 2. 正文
    1. 2.1. 常用算法汇总
  3. 3. 尾巴
  4. 4. 参考资料
|