📅  最后修改于: 2023-12-03 15:29:53.771000             🧑  作者: Mango
在 C++ 中,我们经常需要对两个序列进行比较。其中,我们可以使用 lexicographical_compare()
函数来比较两个序列的字典序大小。
template <class InputIt1, class InputIt2>
bool lexicographical_compare(InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2);
first1
:指向第一个序列的起始位置的迭代器last1
:指向第一个序列的结束位置的迭代器first2
:指向第二个序列的起始位置的迭代器last2
:指向第二个序列的结束位置的迭代器lexicographical_compare()
函数通过比较两个序列的元素,判断它们的字典序大小。如果第一个序列小于第二个序列,则返回 true
,否则返回 false
。
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> v1{1, 2, 3, 4, 5};
std::vector<int> v2{1, 2, 3, 4, 6};
if (std::lexicographical_compare(v1.begin(), v1.end(), v2.begin(), v2.end()))
{
std::cout << "v1 < v2" << std::endl;
}
else
{
std::cout << "v1 >= v2" << std::endl;
}
return 0;
}
上面的代码演示了 lexicographical_compare()
函数的基本用法。首先,我们声明了两个 vector 容器 v1
和 v2
,并分别初始化它们为 {1, 2, 3, 4, 5}
和 {1, 2, 3, 4, 6}
。
接下来,我们通过 std::lexicographical_compare()
函数比较了 v1
和 v2
。由于 v1
小于 v2
,因此程序输出 v1 < v2
。
lexicographical_compare()
函数是一个十分实用的比较函数,它可以方便地用于比较两个序列的字典序大小。在实际编程中,我们可以使用它来实现排序、查找、去重等操作。