按照词典序比较前者是否小于后者。
当序列<first1, last1>按照字典序比较小于后者序列<first2, last2>,则返回true。否则,返回false。
所谓字典序比较,指的是两个序列分别从第一个开始一一按照字典序进行比较,如果相同位置的元素相同,则继续向后比较,直到相同位置出现不同的元素为止。
#include <iostream> #include <algorithm> #include <cctype> bool myCompare(char a, char b) { return std::tolower(a) < std::tolower(b); } int main() { char foo[] = "Apple"; char bar[] = "apartment"; std::cout << std::boolalpha; std::cout << std::lexicographical_compare(foo, foo + 5, bar, bar + 9); std::cout << " "; std::cout << std::lexicographical_compare(foo, foo + 5, bar, bar + 9, myCompare); std::cout << " "; // 错误 // std::string str2 = "Abcd"; // std::string str1 = "abch"; // std::cout << std::lexicographical_compare(str1,str2); // std::cout << " "; // // std::cout << std::lexicographical_compare(str1,str2, myCompare); // std::cout << " "; return 0; }