非修改性序列之lexicographical

    xiaoxiao2025-05-21  1

    lexicographical_compare函数是用来比较两个容器的大小,包括元素和个数,他的原则是这样的:

    1、一次比较两个容器中的元素,若遇到第一个不同的元素,则根据元素的大小决定容器的大小

    2、当两个容器元素都相同,个数不同时,若第一个容器个数小于第二个容器的元素个数,则第一个容器小于第二个容器

    3、元素个数与元素都相等时,两个容器相等,函数返回false

    只有当第一个容器小于第二个容器时,lexicographical_compare函数才会返回true。

    lexicographical_compare也有两种形式:

    第一种:

    template<class _InIt1, class _InIt2> inline bool lexicographical_compare(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2)

    第二种:

    template<class _InIt1, class _InIt2, class _Pr> inline bool _Lexicographical_compare(_InIt1 _First1, _InIt1 _Last1, _InIt2 _First2, _InIt2 _Last2, _Pr _Pred)

    程序实例:

    #include<iostream> #include<vector> #include<list> #include<algorithm> using namespace std; void print(int ele) { cout << ele << " "; } int main() { vector<int> vec; list<int>l; vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.push_back(4); vec.push_back(5); l.push_back(1); l.push_back(2); l.push_back(3); l.push_back(5); l.push_back(4); bool flag = lexicographical_compare(vec.begin(), vec.end(), l.begin(), l.end()); if (flag) cout << "vec < l" << endl; else cout << "vec >= l" << endl; return 0; }

    输出结果:

    转载请注明原文地址: https://ju.6miu.com/read-1299105.html
    最新回复(0)