C++语言中一些可能会用到的函数及头文件

<algorithm>

  • upper_bound/lower_bound
    • upper_bound(a + 1, a + n + 1, w);//查找第一个大于w的位置
      lower_bound(a + 1, a + n + 1, w);//查找第一个大于等于w的位置
      
  • sort
    • sort(a + 1, a + n + 1);//将a数组的[1,n]进行升序排序
      
  • unique
    • m = unique(a + 1, a + n + 1) - a - 1;//将a数组的[1,n]进行去重,m值为不重复的个数
      

<functional>

  • greater / less

    • sort(a + 1, a + n + 1, greater<int>());//从大到小排序
      sort(a + 1, a + n + 1, less<int>());//其实这个没必要,因为sort默认的就是从小到大
      

<cctype>

  • isdigit 判断是否为数字,有些快读中会用到
    • char c;
      cin >> c;
      puts(isdigit(c) ? "YES" : "NO");//如果是数字,输出YES
      

<cstdlib>

  • exit(0); 直接结束程序
  • srand(x) 将x作为随机种子
  • rand() 返回一个伪随机值
  • system("") 在终端中运行双引号中的内容

<ctime>

  • time(0) 返回从1970年1月1日至今所经历的时间(以秒为单位)
  • clock() 计时函数,(以毫秒为单位)

<climits>

  • 定义各种数据类型最值的常量,例如 INT_MAX=2147483647,无符号类型的前面加U

<bits/stdc++.h>

  • “万能头”,不过好像有包含不到的,不过包含不到的也用不上,有的oj编译这个头文件的话可能会报错。