c++ sort函数对数组的使用

易错知识点:
1.sort函数的一般没有声明第三部分没有生命cmp函数的话是从小到大排序,声明cmp之后,他会按照对应的cmp规则进行排序比如

int cmp(int x, int t)
{
  return x > y;
}

就是按照从大到小的允许排列


2.排序区间,sort函数一般是(start, end, cmp)类似这样的使用方法,st,ed是排序区间,但是他这个区间是左闭右开的,
比如sort(a + 2, a + 6)的话就是从a的第三个元素开始,排序到a的第6个元素,也就是从a[2]排序到a[5]! ! !

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;
const int N = 10010;
int a[N];
int cmp(int x, int y)
{
    return x > y;
}
int main()
{
   int n, m;
   cin >> n >> m;
   for(int i = 0; i < n; i ++ )
       a[i] = i + 1;
  while(m --)
  {
      int q, p;
      cin >> p >> q;
      if(p == 0)
            sort(a, a + q, cmp);
        else
            sort(a + q - 1, a + n);
  }
  for(int i = 0; i < n; i ++)cout << a[i] << ' ';
   return 0;
}
上一篇:题解 SP18965


下一篇:Oracle中SCOTT用户的 emp、dept、bonus、salgrade表的属性和结构