1、sort
基本用法:sort(vec.beign(), vec.end()); 升序排列。
sort会根据剩余数据的大小自动选择排序策略,无论什么情况,sort都能保证O(N*log2(N)),基本是比你手写的要好的。
高级用法:自定义排序规则。
public:
static bool cmp(node a,node b)
{
if(a.unit!=b.unit)
return a.unit>b.unit;
else
return a.box>b.box;
}
public:
int main()
{
sort(vec.begin(), vec.end(), cmp); //这里的vec是node数组
}
// 当必须要用到main内部其他数据来排序时,就无法用上一种Public定义cmp了。可以用lambda函数。
sort(order.begin(), order.end(), [&](int a, int b){
if(ages[a] < ages[b]) return true;
else if(ages[a] == ages[b])
{
if(scores[a] < scores[b]) return true;
else return false;
}
else return false;
});