Open In App

stack empty() and stack size() in C++ STL

Improve
Improve
Like Article
Like
Save
Share
Report

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




// CPP program to illustrate
// Implementation of empty() function
#include <iostream>
#include <stack>
using namespace std;
 
int main()
{
    stack<int> mystack;
    mystack.push(1);
 
    // Stack becomes 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




// CPP program to illustrate
// Application of empty() function
#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);
 
    // Stack becomes 1, 8, 3, 6, 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




// CPP program to illustrate
// Implementation of size() function
#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);
 
    // Stack becomes 1, 8, 3, 6, 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




// CPP program to illustrate
// Application of size() function
#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);
 
    // Stack becomes 1, 8, 3, 6, 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
Previous
Next
Share your thoughts in the comments
Similar Reads