目录
1.不修改序列的操作
2.修改序列的操作
3.划分操作
4.排序操作
5.二分搜索操作(在已排序范围上)
6.集合操作(在已排序范围上)
7.堆操作
8.最小/最大操作
9.比较操作
10.排列操作
11.数值运算
1.不修改序列的操作 ^
- all_of,any_of和none_of:判断一定范围内,是否全部,存在或不存在元素。
- for_each:将一个函数应用于某一范围的元素
- count和count_if:返回满足指定判别的元素数
- mismatch:查找两个范围第一个不同元素的位置
- find,find_if和find_if_not:查找满足特定条件的第一个元素
- find_end:查找一定范围内最后出现的元素序列
- find_first_of:查找元素集合中的任意元素
- adjacent_find:查找彼此相邻的两个相同(或其它的关系)的元素
- search:查找一个元素区间
- search_n:在区间中搜索连续一定数目次出现的元素
-
#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { vector<int> ivec{ 1,2,2,4,5,6,7,8,9,10 }; vector<int> v{ 5,6 ,7,8,9,10 }; //判断容器内是否所有元素都满足条件 if (all_of(ivec.begin(), ivec.end(), [](int i) { return i < 20; })) cout << "容器内所有元素都满足条件" << endl; //判断容器内是否有元素满足条件 if(any_of(ivec.begin(),ivec.end(),[](int i){ return i>9;})) cout << "容器内有任意一个元素满足条件" << endl; //判断容器内是否所有的元素都不满足条件 if (none_of(ivec.begin(), ivec.end(), [](int i) { return i > 10; })) cout << "容器内所有元素都不满足条件" << endl; //遍历容器内元素 for_each(ivec.begin(), ivec.end(), [](const int& n) { cout << n << " "; }); cout << endl << "返回满足条件的元素个数:" << endl; cout << count(ivec.begin(), ivec.end(), 5) << endl; cout << count_if(ivec.begin(), ivec.end(), [](int i) { return i < 4; }) << endl; cout << "返回一个pair对象,first为第一个不匹配元素的迭代器,second为第一个匹配的元素的迭代器:" << endl; cout << *mismatch(ivec.begin(), ivec.end(), v.begin(), v.end()).first << endl; cout << *mismatch(ivec.begin(), ivec.end(), v.begin(), v.end()).second << endl; cout << "返回满足条件的第一个元素的迭代器:" << endl; cout << *find(ivec.begin(), ivec.end(), 5) << endl; cout << *find_if(ivec.begin(), ivec.end(), [](int i) { return i > 5; })<<endl; cout << "返回不满足条件的第一个元素的迭代器" << endl; cout << *find_if_not(ivec.begin(), ivec.end(), [](int i) { r