C++ Stack::operator> 函数



在 C++ 中,栈提供了一个灵活的工具集,用于以 LIFO(后进先出)方式管理数据,这意味着最后添加的元素将首先被移除。其中一个基本函数是 **std::stack::operator>** 用于比较两个栈。它根据栈的内容评估一个栈是否大于另一个栈,有助于排序或优先级任务。

语法

以下是 std::stack::operator> 函数的语法:

bool operator>(const stack <Type, Container>& left, const stack <Type, Container>& right);

参数

  • **left** - 一个栈类型的对象。
  • **right** - 一个栈类型的对象。

返回值

如果运算符左侧的栈大于右侧的栈,则返回 true,否则返回 false。

示例 1

让我们看下面的例子,我们将比较两个栈的内容。

#include <iostream>
#include <stack>

int main(){
   std::stack<int> x, y;
   x.push(2);
   x.push(4);
   x.push(6);
   y.push(1);
   y.push(3);
   y.push(5);
   if (x > y) {
      std::cout << "TRUE" << std::endl;
   } else {
      std::cout << "FALSE" << std::endl;
   }
   return 0;
}

输出

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

TRUE

示例 2

考虑下面的例子,我们将比较两个栈的大小。

#include <iostream>
#include <stack>

int main(){
   std::stack<int> a, b;
   a.push(2);
   a.push(4);
   b.push(1);
   b.push(3);
   b.push(5);
   if (a.size() > b.size()) {
      std::cout << "a is greaterthan b";
   } else {
      std::cout << "a is not greaterthan b";
   }
   return 0;
}

输出

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

a is not greaterthan b

示例 3

在下面的示例中,我们将看到 std::stack::operator> 函数的使用。

#include <iostream>
#include <stack>
using namespace std;

int main(void){
   stack<int> s1;
   stack<int> s2;
   for (int i = 0; i < 5; ++i) {
      s1.push(i + 1);
      s2.push(i + 1);
   }
   s1.push(6);
   if (s1 > s2)
      cout << "Stack s1 is greater than s2." << endl;
   s2.push(7);
   if (!(s1 > s2))
      cout << "Stack s1 is not greater than s2." << endl;
   return 0;
}

输出

上面代码的输出如下:

Stack s1 is greater than s2.
Stack s1 is not greater than s2.
广告