stack empty() and stack size() in C++ STL
Stacks are a type of container adaptors with LIFO(Last In First Out) type of working, where a new element is added at one end and (top) an element is removed from that end only.
stack::empty()
empty() function is used to check if the stack container is empty or not.
Syntax :
stackname.empty()
Parameters :
No parameters are passed.
Returns :
True, if stack is empty
False, Otherwise
Examples:
Input : mystack
mystack.empty();
Output : True
Input : mystack = 1, 2, 3
Output : False
Errors and Exceptions
1. Shows error if parameter is passed
2. Shows no exception throw guarantee.
CPP
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack< int > mystack;
mystack.push(1);
if (mystack.empty()) {
cout << "True";
}
else {
cout << "False";
}
return 0;
}
|
Output:
False
Application : Given a stack of integers, find the sum of the all the integers.
Input : 1, 8, 3, 6, 2
Output: 20
Algorithm
1. Check if the stack is empty, if not add the top element to a variable initialised as 0, and pop the top element.
2. Repeat this step until the stack is empty.
3. Print the final value of the variable.
CPP
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int sum = 0;
stack< int > mystack;
mystack.push(1);
mystack.push(8);
mystack.push(3);
mystack.push(6);
mystack.push(2);
while (!mystack.empty()) {
sum = sum + mystack.top();
mystack.pop();
}
cout << sum;
return 0;
}
|
Output:
20
stack::size()
size() function is used to return the size of the stack container or the number of elements in the stack container. Syntax :
stackname.size()
Parameters :
No parameters are passed.
Returns :
Number of elements in the container.
Examples:
Input : mystack = 0, 1, 2
mystack.size();
Output : 3
Input : mystack = 0, 1, 2, 3, 4, 5
mystack.size();
Output : 6
Errors and Exceptions
1. Shows error if a parameter is passed.
2. Shows no exception throw guarantee.
CPP
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int sum = 0;
stack< int > mystack;
mystack.push(1);
mystack.push(8);
mystack.push(3);
mystack.push(6);
mystack.push(2);
cout << mystack.size();
return 0;
}
|
Output:
5
Application : Given a stack of integers, find the sum of the all the integers.
Input : 1, 8, 3, 6, 2
Output: 20
Algorithm
1. Check if the size of the stack is zero, if not add the top element to a variable initialised as 0, and pop the top element.
2. Repeat this step until the stack size becomes 0.
3. Print the final value of the variable.
CPP
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int sum = 0;
stack< int > mystack;
mystack.push(1);
mystack.push(8);
mystack.push(3);
mystack.push(6);
mystack.push(2);
while (mystack.size() > 0) {
sum = sum + mystack.top();
mystack.pop();
}
cout << sum;
return 0;
}
|
Output:
20
Let us see the differences in a tabular form -:
|
stack empty() |
stack size() |
1. |
It is used to return whether the stack is empty
|
It is used to return the number of elements in the stack.
|
2. |
Its syntax is -:
empty();
|
Its syntax is -:
size();
|
3. |
Its return type is of boolean.
|
Its return type is of integer.
|
4. |
It does not take any parameters.
|
It does not take any parameters.
|
5. |
Its complexity is constant.
|
Its complexity is constant.
|
Last Updated :
30 Jun, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...