C++ Stack::operator>= 函数



C++ 函数std::stack::operator>=用于比较两个栈。它检查一个栈中的元素是否大于或等于另一个栈中的元素。如果栈的大小不同,此函数可能会返回未定义的结果。如果第一个栈的元素大于或等于第二个栈的对应元素,则返回true;否则返回false。

语法

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

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

参数

  • left - 类型为stack的对象。
  • right - 类型为stack的对象。

返回值

如果第一个栈大于或等于第二个栈,则返回true;否则返回false。

示例1

让我们来看下面的例子,我们将比较两个栈x和y的大小。

#include <iostream>
#include <stack>

int main() {
   std::stack<int> x, y;
   x.push(11);
   x.push(22);
   x.push(33);
   y.push(44);
   y.push(55);
   if (x.size() >= y.size()) {
      std::cout << "True";
   } else {
      std::cout << "False";
   }

   return 0;
}

输出

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

True

示例2

考虑下面的例子,我们将检查栈的大小是否大于或等于指定的值。

#include <iostream>
#include <stack>

int main(){
   std::stack<int> x;
   x.push(11);
   x.push(22);
   int value = 4;
   if (x.size() >= value) {
      std::cout << "True, Stack size is greaterthan or equal to" <<value<<".";
   } else {
      std::cout << "False, Stack size is Not greaterthan or equal to " <<value<<".";
   }
   return 0;
}

输出

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

False, Stack size is Not greaterthan or equal to 4.

示例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 or equal to s2." << endl;
   s2.push(7);
   if (!(s1 >= s2))
      cout << "Stack s1 is not greater than or equal to s2." << endl;
   return 0;
}

输出

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

Stack s1 is greater than or equal to s2.
Stack s1 is not greater than or equal to s2.
广告