equal 比较算法
includes 是不是包含
lexicographical_compare 比较序列(类似于C++字符串的比较)
max 最大值 max_element
min 最小值 min_element
mismatch(比较两个容器,第一次出现不同的地方)
equal 比较算法
这里打印出布尔类型 true ,false
要使用格式控制的头文件 iomanip
采用 boolalpha的方式
#include<iostream> #include<algorithm> #include<iomanip> #include<vector> #include<functional> using namespace std; int main() { vector<int> first{ 1, 2, 3, 4, 5 }; vector<int> second{ 1, 2, 3 ,4, 5, 6,7 }; //1.equal 比较算法 cout << boolalpha << equal(first.begin(), first.end(), second.begin(), second.end()); return 0; }
include (是否包含)
首先的条件是:必须要是有序的容器,否则程序会报错
#include<iostream> #include<algorithm> #include<iomanip> #include<vector> #include<functional> using namespace std; int main() { vector<int> first{ 1, 2, 3, 4, 5 }; vector<int> second{ 1, 2, 3 ,4, 5, 6,7 }; //2. include 是否包含的算法 cout << includes(first.begin(), first.end(), second.begin(), second.end()); return 0; }
打印的结果是false 或者
lexicographical_compare(比较序列)
第一个小于第二个,返回true
第一个大于第二个,返回false
#include<iostream> #include<algorithm> #include<iomanip> #include<vector> #include<functional> using namespace std; int main() { vector<int> first{ 1, 2, 3, 4, 5 }; vector<int> second{ 1, 2, 3 ,4, 5, 6,7 }; //3.lexicograhical_compare cout << lexicographical_compare(first.begin(), first.end(), second.begin(), second.end()); return 0; }
最大值(max_element)
#include<iostream> #include<algorithm> #include<iomanip> #include<vector> #include<functional> using namespace std; int main() { vector<int> first{ 1, 2, 3, 4, 5 }; vector<int> second{ 1, 2, 3 ,4, 5, 6,7 }; //4. 最大值 cout << max(1, 2) << endl; cout << *max_element(first.begin(), first.end()) << endl; return 0; }
最小值(min_element)
#include<iostream> #include<algorithm> #include<iomanip> #include<vector> #include<functional> using namespace std; int main() { vector<int> first{ 1, 2, 3, 4, 5 }; vector<int> second{ 1, 2, 3 ,4, 5, 6,7 }; //5.最小值 cout << min(4, 3) << endl; cout << *min_element(second.begin(), second.end()) << endl; return 0; }
mismatch(找到第一个不同位置的)
如果程序崩溃了,看看两个迭代器的大小是否一样
同时,
这个mismatch的返回值类型很特殊
为pair<迭代器类型, 迭代器类型>
//6. mismatch //返回值类型为 pair<迭代器类型,迭代器类型> //pair<vector<int> :: iterator ,vector<int> :: iterator> auto m = mismatch(first.begin(), first.end(), second.begin(), second.end()); cout << *m.first << endl; cout << *m.second << endl;