文章目录
- 🔺sort
- stable_sort
- 🔺reverse
- 🔺swap
- 🔺find
- 🔺max/min
- 🔺next_permutation/prev_permutation 全排列
- binary_search
- lower_bound/upper_bound 求下界和上界
- set_union/set_intersection/set_difference 求并差交集
🔺sort
stable_sort
🔺reverse
🔺swap
C++98:
不推荐 swap(v1, v2),这样是深拷贝,降低效率
推荐 v1.swap(v2)
C++11:
swap(v1, v2),使用的是移动构造、移动赋值
v1.swap(v2)
效果一样了
🔺find
🔺max/min
🔺next_permutation/prev_permutation 全排列
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{vector<int> v = {1, 3, 2};sort(v.begin(), v.end());do{for(auto e: v){cout << e << " ";}cout << endl;}while(next_permutation(v.begin(),v.end())); // 从升序开始return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{vector<int> v = {1, 3, 2};sort(v.begin(), v.end(), greater<int>());do{for(auto e: v){cout << e << " ";}cout << endl;}while(prev_permutation (v.begin(),v.end())); // 从降序开始return 0;
}
binary_search
lower_bound/upper_bound 求下界和上界
返回的是第一个 >= val 的起始位置
返回的是第一个 > val 的值
set_union/set_intersection/set_difference 求并差交集
求并集:
(用 multiset 也可以
求交集:
求差集: