- accumulate:用于对容器中的元素进行累加求和操作。
int ssm=accumulate(v.begin(),v.end(),0);
- greater
sort(v.begin(),v.end(),greater<int>());
priority_queue<int,vector<int>,greater<int> >q;
- 字符串最后的元素
char c=*s.rbegin();
- binary_search:用于在有序容器中查找指定元素。
vector<int> vec = {1, 2, 3, 4, 5};
bool found = std::binary_search(vec.begin(), vec.end(), 3);
- max_element 和 min_element:分别用于找到容器中的最大值和最小值。
int max_it = *max_element(vec.begin(), vec.end());
int min_it = *min_element(vec.begin(), vec.end());
- reverse:用于反转容器中元素的顺序。
reverse(vec.begin(), vec.end());
- count:用于计算容器中指定元素的个数。
int sum = count(vec.begin(), vec.end(), num);
- lower_bound 和 upper_bound:分别用于在有序容器中找到第一个大于等于指定值的元素和第一个大于指定值的元素。
vector<int> vec = {1, 2, 3, 4, 5};
int lb = lower_bound(vec.begin(), vec.end(), 3)-vec.begin();
int ub = upper_bound(vec.begin(), vec.end(), 3)-vec.begin();
- unique:用于移除容器中相邻的重复元素,只保留一个。
vector<int> vec = {1, 2, 2, 3, 3, 4, 4, 4, 5};
auto last = unique(vec.begin(), vec.end());
- gcd 和 lcm:用于计算两个整数的最大公约数和最小公倍数。
int a = 12, b = 18;
int gcd_result = gcd(a, b);
int lcm_result = lcm(a, b);
- find:用于在容器中查找指定元素的第一个出现位置。
vector<int> vec = {1, 2, 3, 4, 5};
int pos = find(vec.begin(), vec.end(), 3)-vec.begin();
- fill:用于将容器中的元素全部赋值为指定值。
fill(vec.begin(), vec.end(), 10);
- stable_sort(): 和sort用法一样,包括自定义cmp之类的,但是是稳定的(基于归并排序)
PAT之类的模拟题可能用到,例如成绩排序