Cplusplus-tutorial-in-hindi.jpg
有关排序作为一名搬砖工我几乎每天都会用到, 有关排序的算法可能了解不多. 最近在看数据结构和算法.
不过在 c++11 版本之后给我们提供了内建 sort 方法, 方便供我们使用, 扩展性也不错
- #include <iostream>
- #include <vector>
- #include <algorithm>
- int main()
- {
- std::vector<int> values = {3, 5, 6, 1, 3, 8};
- std::sort(values.begin(), values.end());
- for (int value : values)
- {
- std::cout << value << std::endl;
- }
- std::cin.get();
- }
- 1 3 3 5 6 8
在 sort 方法也接收最后一个参数为 lambda , 通过定义 lambda 来自定义排序规则.
- std::sort(values.begin(), values.end(), [](int a, int b) {
- return a < b;
- });
我们通过下面算法从小到排序, 不同的是这次将 1 排到排尾.
- std::sort(values.begin(), values.end(), [](int a, int b) {
- if (a == 1)
- return false;
- if (b == 1)
- return true;
- return a < b;
- });
- 3 3 5 6 8 1
titleShadow.PNG
来源: http://www.jianshu.com/p/84a608ddf382