C++里面有一些内置函数,实现了一些常用功能。虽然我手写也能写出这些函数,但是在srm或者其他一些需要速度的地方,用内置函数的优势就能体现出来了。
1、__gcd(a, b),返回a,b的最大公约数,若a为0返回b,若b为0返回a,若都为0返回0。在头文件<algorithm>中。
2、__builtin_popcount(i),返回i的二进制形式中含有1的个数。不知道在什么头文件里。只开<cstdio>或<iostream>都能使用。
3、next_permutation和prev_permutation,两者均是用来求一个序列的排列组合,前者求下一个排列,后者求上一个。比如对string s = "abc",使用next_permutation(s.begin(), s.end()),则s变为"acb“,并且该语句返回true。如果没有比当前s更大的排列,则返回false,并且将s置为最小排列(此处最小排列为”abc“)。prev_permutation类似。在头文件<algorithm>中。
4、构造函数。
1 struct oo{ 2 int x, y; 3 oo (){} 4 oo (int _x, int _y) : x(_x), y(_y) {} 5 }