C++ 队列::operator<() 函数



队列中的 C++ std::queue::operator< 函数用于按字典顺序比较元素。它检查第一个队列是否小于第二个队列,并返回一个布尔值:如果第一个队列小于第二个队列则返回 true,否则返回 false。此函数的时间复杂度为线性,即 O(n)。

语法

以下是 std::queue::operator<() 函数的语法。

bool operator< (const queue<T,Container>& q1, const queue<T,Container>& q2);

参数

  • q1 − 指示第一个队列对象。
  • q2 − 指示第二个队列对象。

返回值

如果第一个队列小于第二个队列,则此函数返回 true,否则返回 false。

示例

让我们来看下面的例子,我们将对两个队列进行基本的比较。

#include <iostream>
#include <queue>
int main() {
    std::queue<int> a;
    std::queue<int> b;
    a.push(1);
    a.push(2);
    b.push(1);
    b.push(22);
    if (a < b) {
        std::cout << "Queue1 is less than Queue2" << std::endl;
    } else {
        std::cout << "Queue1 is not less than Queue2" << std::endl;
    }
    return 0;
}

输出

以下是上述代码的输出:

Queue1 is less than Queue2

示例

考虑另一种情况,我们将考虑不同大小的队列并应用 operator< 函数。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> x;
    std::queue<int> y;
    x.push(1);
    x.push(2);
    y.push(1);
    y.push(2);
    y.push(3);
    if (x < y) {
        std::cout << "Queue1 is less than Queue2" << std::endl;
    } else {
        std::cout << "Queue1 is not less than Queue2" << std::endl;
    }
    return 0;
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Queue1 is less than Queue2

示例

在下面的示例中,我们将初始化相等的队列并应用 operator< 函数。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a;
    std::queue<int> b;
    a.push(1);
    a.push(2);
    b.push(1);
    b.push(2);
    if (a < b) {
        std::cout << "Queue1 is less than Queue2" << std::endl;
    } else {
        std::cout << "Queue1 is not less than Queue2" << std::endl;
    }
    return 0;
}

输出

以下是上述代码的输出:

Queue1 is not less than Queue2

示例

以下是一个示例,我们将比较空队列和非空队列,并观察输出。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a;
    std::queue<int> b;
    b.push(123);
    if (a < b) {
        std::cout << "Queue1 is less than Queue2" << std::endl;
    } else {
        std::cout << "Queue1 is not less than Queue2" << std::endl;
    }
    return 0;
}

输出

如果我们运行上述代码,它将生成以下输出:

Queue1 is less than Queue2
queue.htm
广告