EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Stack in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Stack in C++

Stack in C++

Introduction to Stack in C ++

Stacks in C ++ programming language plays an important role in LIFO (Last in first out ) context which means elements are inserted and extracted only from one end. Basically stacks are a type of container adaptor in which a new element is added at one end (top) and an element is removed from that same end only is called a stack. It’s an abstract data structure used for the collection of elements in the stack by following the LIFO mechanism. The element which is entered last in the stack will be deleted first because there is only one end for it.

Syntax:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

template <
class C,
class Container = std::deque<C>
> class stack;

The std::stack class is a container adapter, a LIFO (last-in, first-out) data structure.

This class template will act as a wrapper to the container with a specified set of functions. The stack pushes and pops the element from the back of the defined container, known as the top of the stack.

How does Stack work in C++?

To see the working of the stack in programming language let’ see the list of functions associated with the stack. Given below are the functions:

  • push(g): This function will add/insert the element or data value ‘g’ at the top of the stack. The Time Complexity of this function is O(1).
  • pop(): This function will remove/delete the element or data value at the top of the stack. The Time Complexity of this function is O(1). It will delete the topmost element of the stack.
  • top(): This function will return a reference to the topmost element of the stack. The time complexity of this function is O(1).
  • size(): This function will return the size of the stack container that is a total number of elements stored in the stack. The time complexity of this function is O(1).
  • empty(): This function will check whether the stack container is empty or not. Similarly, the time complexity for this function is O(1).

Examples of Stack in C++

Here we will see how actually a stack work in C++ programming language through C++ codes. Therefore, Let’s have a look at some programming examples in C++ language to explain the working of the stack.

Example #1

C ++ code to demonstrate the working of stack in C ++ programming language:

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,890 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Code:

#include <iostream>
#include <stack>
using namespace std;
void stackone ( stack < int > so)
{
stack < int > sg = so;
while ( !sg.empty() )
{
cout << '\t' << sg.top();
sg.pop();
}
}
int main ()
{
stack < int > nest;
nest.push ( 505 );
nest.push ( 404 );
nest.push ( 303 );
nest.push ( 202 );
nest.push ( 101 );
cout << "The stack nest is consists of these numbers: ";
stackone ( nest );
cout << "\n nest.size() : " << nest.size();
cout << "\n nest.top() : " << nest.top();
cout << "\n nest.pop() : ";
nest.pop();
stackone ( nest );
return 0;
}

Output:

stack in c++

Here in the above C++ code, you can see how stack functions like push and pop are used to push and pop value in and out of the container which follows LIFO (Last in First out ) mechanism. As you can see the values in the output after pushing and popping the value. This code also shows the size of the stack container after performing all the operations. It shows the topmost elements and popped out elements.

Example #2

C ++ code to demonstrate the working of stack in C ++ programming language:

Code:

#include <iostream>
using namespace std;
int stack[100], x =100, top =- 1;
void push ( int value ) {
if ( top >= x-1)
cout << " This is Stack Overflow " << endl;
else {
top++;
stack [top] = value;
}
}
void pop() {
if ( top <= -1)
cout << " This is Stack Underflow " << endl;
else {
cout << " The popped element from the stack is "<< stack[top] << endl;
top--;
}
}
void show() {
if ( top >= 0) {
cout << " Stack elements are: " ;
for ( int i =top; i >= 0; i--)
cout << stack[i] << " ";
cout << endl;
} else
cout << " Stack is empty ";
}
int main() {
int ch, value;
cout << " 1) Do you want to Push in stack " << endl;
cout << " 2) Do you want to Pop from stack " << endl;
cout << " 3) Do you want to show stack " << endl;
cout << " 4) Do you want to Exit " << endl;
do {
cout << " Please enter the choice: " << endl;
cin >> ch;
switch ( ch ) {
case 1: {
cout << " Please enter the value to be pushed: " << endl;
cin >> value;
push ( value );
break;
}
case 2: {
pop();
break;
}
case 3: {
show();
break;
}
case 4: {
cout << " Exit " << endl;
break;
}
default: {
cout << " Invalid Choice " << endl;
}
}
}while ( ch != 4);
return 0;
}

Output:

stack in c++ 2

Here in the above C++ code, you can see how stack functions like push and pop are used to push and pop value in and out of the container by adding underlying conditions that follow the LIFO ( Last in First out ) mechanism. As you can perform all the 4 operations mentioned in the code. This code allows a user to insert, delete, show and exit of elements from the stack container in an easy process flow.

Conclusion

Stack is very useful when you are working on large programs because when you have a large set of data in the program sometimes it gets difficult to find and erase data available in the program. Therefore, to handle data in the programing with ease stack is used.

Recommended Articles

This is a guide to Stack in C++. Here we discuss the introduction, how does Stack work in C++ with examples and code implementation. You may also have a look at the following articles to learn more –

  1. Type Casting in C++
  2. Abstraction in C++
  3. Regular Expressions in C++
  4. size() in C++

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More