版权声明:本文为博主原创文章,未经博主允许必须转载。 https://blog.csdn.net/qq_35950004/article/details/83500804
1:
int __builtin_popcount(int x)
long long __builtin_popcountll(long long x)
求数字x二进制中的1的个数
实测:
#include<cstdio>
int main()
{
long long x = 1ll<<60;
printf("%d\n",__builtin_popcount(x));
printf("%d\n",__builtin_popcountll(x));
/*
output:
0
1
*/
}
2:
sort(a+l,a+r(,cmp))
stable_sort(a+l,a+r(,cmp))
nth_element(a+l,a+k,a+r(,cmp))
(,cmp) 表示比较函数,可加可不加。
sort是比较常用的排序,表示将a+l到a+r-1的元素排序。O(nlogn)
stable_sort是sort的稳定排序版本,和sort在用法和时间复杂度上一致。
stable_sort在排序时如果两个数据在比较函数的定义下相等,则不会交换,相当于把每个元素ai定义为pair<XXX,i>=(ai , i)然后sort。。。
nth_element是使用快速选择算法,求出第k大的STL函数。
表示在a+l到a+r-1中第k大的将会被放到a+k的位置上,比他小的都在a+k前,比他大的都在a+k后。