关系类算法函数
- equal 比较算法
- include (是否包含)
- lexicographical_compare(比较序列)
- 最大值(max_element)
- 最小值(min_element)
- mismatch(找到第一个不同位置的)
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_comparecout << 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;