bool lexicographical_compare (InputIterator1 beg1, InputIterator1 end1, InputIterator2 beg2, InputIterator2 end2);
bool lexicographical_compare (InputIterator1 beg1, InputIterator1 end1, InputIterator2 beg2, InputIterator2 end2, CompFunc op);
功能:
两种形式都用来判断区间[beg1, end1)的元素是否小于区间[beg2, end2)的元素。所谓”小于“是指本着”字典次序“的意义
a、第一形式使用operator<
b、第二形式使用op(elem1, elem2)来判断
c、注意op在函数调用过程中不应该改变自身状态
d、op不应该改动传进来的参数
e、时间复杂度:线性
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char *argv[])
{
int arr1[] = {3,2,1,4};
int arr2[] = {2,3,2,1};
vector<int> vec1(arr1, arr1+4);
vector<int> vec2(arr2, arr2+4);
bool bRet = lexicographical_compare(vec1.begin(),vec1.end(),vec2.begin(), vec2.end());
if (bRet)
cout << "vec1小于vec2" << endl;
else
cout << "vec1不小于vec2" << endl;
return 0;
}