
C++stl 函数
1
hesorchen
这个作者很懒,什么都没留下…
展开
-
STL数组第k小数函数
在一个数组中,要找第k小数,很多人的第一反应应该都是sort然后直接输出。但是昨天就被5e6卡了nlogn,这时候,stl里的一个函数就可以上场了:nth_element() 这个函数有四个参数: 1.first 容器开始位置 2.nth 要找的第k小(大)元素 3.last 容器结束位置 4.cmp 同sort,默认升序 该函数唯一能保证的就是第k小(大)元素在所选容器区间的第k个位置。不过拥有O(n)O(n)O(n)的复杂度。 函数结束之后,在k位置之前的数都小于第k的元素,在k位置之后的数都大于第k的原创 2020-05-26 10:32:51 · 5353 阅读 · 0 评论 -
C++ stl reverse翻转字符串
reverse(a.begin(),a.end())翻转字符串a原创 2020-03-21 13:36:45 · 6465 阅读 · 0 评论 -
AtCoder E - Sequence Decomposing upper_bound的第四个参数greater<int>()重载运算符
题目传送门 这个题 由于没想到位,离AC只差一步。最终还是没写出来。 众所周知,sort()默认按递增排序一样,upper_bound()默认用于非严格递增序列。sort函数第三个参数可以重载运算符,只需sort(a,a+n,greater()),这样作用数组就从大到小排序。upper_bound也一样,加上第四个参数greater()之后,就说明,要操作的数组现在是非严格递减的。 接下来说...原创 2020-03-15 20:52:55 · 5515 阅读 · 0 评论 -
C++ STL unique去重函数
现有一个数组(因为unique函数针对相邻的重复元素进行操作,因此需要有序): a[10] = {1, 1, 1, 3, 4, 5, 6, 6, 7, 9}; unique()有两个参数,需要去重的数组的首尾地址,例如上面的a[]数组去重,只需unique(a,a+10)即可。 But,unique不是真正意义上的去重,例如上面给出的数组,经过unique函数之后,会变成: 1 3 4 5 6 ...原创 2020-02-26 16:59:36 · 4784 阅读 · 0 评论 -
C++ STL upper_bound和lower_bound
现有一个不递减的序列a[10] = {1, 1, 1, 3, 3, 5, 5, 5, 5, 6} 数组元素n=10; upper_bound(a,a+n,k) 返回容器中第一个大于k的元素的地址 lower_bound(a,a+n,k) 返回容器中第一个大于等于k的元素的地址 没错,两个函数的区别就是lower_bound多了个等于 需要注意的是函数返回的都是元素地址 因此,这样就...原创 2020-02-26 15:43:26 · 4459 阅读 · 1 评论 -
__gcd求最大公约数
使用头文件< algorithm > __gcd(a,b)返回a和b的最大公约数原创 2020-02-10 19:26:14 · 5320 阅读 · 1 评论