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.
廣告