C ++ STL中的stack empty()和stack size()

在本文中,我们将讨论C ++ STL中stack::empty()和stack::size()函数的工作,语法和示例。

什么是C ++ STL中的堆栈?

堆栈是将数据存储在LIFO(后进先出)中的数据结构,在该位置我们从最后插入的元素的顶部进行插入和删除。就像一堆板子一样,如果我们想将新的板子推入栈中,我们会在顶部插入,如果我们想从板子中取出该板子,那么我们也会从顶部将其删除。

什么是stack::empty()?

stack::empty()函数是C ++ STL中的内置函数,该函数在<stack>头文件中定义。empty()用于检查关联的容器是否为空,并相应地返回true或false。

该函数检查容器应为空,意味着容器的大小应为0。

语法

stack_name.empty();

参数

该函数不接受任何参数。

返回值

如果容器为空,则此函数返回true,否则返回false。

输入值 

std::stack<int> stack1;
stack1.emplace(1);
stack1.emplace(2);
stack1.emplace(3);
stack1.empty();

输出结果 

false

输入值 

std::stack<int> stack2;
stack2.empty();

输出结果 

true

示例

#include <iostream>
#include <stack>
using namespace std;
int main(){
   stack<int> stck;
   int Product = 1;
   stck.push(1);
   stck.push(2);
   stck.push(3);
   stck.push(4);
   stck.push(5);
   stck.push(6);
   while (!stck.empty()){
      Product = Product * stck.top();
      stck.pop();
   }
   cout<<"\nProduct of elements in stack are: "<<Product;
   return 0;
}

输出结果

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

Product of elements in stack are: 720

什么是stack::size()?

stack::size()函数是C ++ STL中的内置函数,该函数在<stack>头文件中定义。size()用于检查关联容器的大小并以整数值返回结果,该整数值是容器中元素的数量。

如果容器为空,则size()返回0

语法

stack_name.size();

参数

该函数不接受任何参数。

返回值

此函数返回容器的大小

输入值 

std::stack<int> stack1;
stack1.emplace(1);
stack1.emplace(2);
stack1.emplace(3);
stack1.size();

输出结果 

3

输入值

std::stack<int> stack2;
stack2.size();

输出结果 

0

示例

#include <iostream>
#include <stack>
using namespace std;
int main(){
   stack<int> stck;
   int Product = 1;
   stck.push(1);
   stck.push(2);
   stck.push(3);
   stck.push(4);
   stck.push(5);
   stck.push(6);
   cout<<"size of stack is: "<<stck.size();
   while (stck.size()>0){
      Product = Product * stck.top();
      stck.pop();
   }
   cout<<"\nProduct of elements in stack are: "<<Product;
   return 0;
}

输出结果

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

size of stack is: 6
Product of elements in stack are: 720