C++ Queue::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。

示例

让我们来看下面的例子,我们将用相同的元素初始化两个队列,并应用 operator==() 函数。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a, b;
    a.push(11);
    a.push(222);
    b.push(11);
    b.push(222);
    if (a == b)
        std::cout << "Queues are equal." << std::endl;
    else
        std::cout << "Queues are not equal." << std::endl;
    return 0;
}

输出

以上代码的输出如下:

Queues are equal.

示例

考虑另一种情况,我们将初始化不同大小的队列并应用 operator==() 函数。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a, b;
    a.push(11);
    a.push(222);
    b.push(1);
    if (a == b) {
        std::cout << "Queues are equal.";
    } else {
        std::cout << "Queues are not equal.";
    }
    return 0;
}

输出

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

Queues are not equal.

示例

在下面的例子中,我们将对空队列应用 operator==() 函数并观察输出。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> a, b;
    if (a == b) {
        std::cout << "Queues are equal.";
    } else {
        std::cout << "Queues are not equal.";
    }
    return 0;
}

输出

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

Queues are equal.

示例

下面的例子中,我们将用相同数量但不同值的元素初始化队列,并应用 operator==() 函数。

#include <iostream>
#include <queue>
int main()
{
    std::queue<int> x, b;
    x.push(11);
    x.push(2);
    b.push(222);
    b.push(33);
    if (x == b) {
        std::cout << "Queues are equal.";
    } else {
        std::cout << "Queues are not equal.";
    }
    return 0;
}

输出

以下是以上代码的输出:

Queues are not equal.
queue.htm
广告
© . All rights reserved.