有关排序作为一名搬砖工我几乎每天都会用到,有关排序的算法可能了解不多。最近在看数据结构和算法。
不过在 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
网友评论