学习C++中的有用函数

1:
int __builtin_popcount(int x)
long long __builtin_popcountll(long long x)
求数字x二进制中的1的个数
实测:

#include

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=(ai , i)然后sort。。。
nth_element是使用快速选择算法,求出第k大的STL函数。
表示在a+l到a+r-1中第k大的将会被放到a+k的位置上,比他小的都在a+k前,比他大的都在a+k后。

你可能感兴趣的:(模板)