In this instructional exercise you will find out about STL stack compartment connector in C++, for example, std:: stack and all capacities which it gives.
std:: stack is a holder connector. We realize that holder connectors are not compartments. They give explicit interfaces.
Components controlled in compartment connectors by typified elements of explicit classes.
Stack works in Last in First out (LIFO) kind of game plan. Continuously components will be embedded and furthermore erased on the same side of the stack.
Working with direct tasks on stack/line and other compartment connectors, will such a great amount of helpful in aggressive programming.
It spares time and furthermore exemplified elements of item actualized in best intricacy way.
At the point when program size excessively enormous, rather than composing whole code in the event that we utilize direct capacities from the library that gives unambiguity while working.
C++ STL Stack Container Adaptor – std::stack
To work with stl compartment, we first need to incorporate stack header record.
#include<stack>
The capacities related with stack are:
push(element): Inserting components into the stack is designated “push” activity.
pop(element): Removing components into the stack is designated “pop” activity.
top(element): Displays the top component of the stack.
size(element): Returns the size of the stack
void(): This is a Boolean activity which returns whether the stack is vacant or not.
Program to show the above capacities on the stack:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack <int> stk; // declearing stack
for (int i=0; i<5; i++){
// pushing elements into stack
stk.push(i);
}
cout << "size of the stack is ";
cout << stk.size() << endl;
cout << "top of the stack is ";
cout << stk.top() << endl;
// to show all elements we should pop each time.
// Since we can only access top of the stack.
cout << "elements of the stack are " << endl ;
for (int i=0; i<5; i++){
cout << stk.top() << " ";
stk.pop(); // popping element after showing
}
cout << endl;
if (stk.empty() == 1) {
cout << "finally stack is empty " << endl;
}
else {
cout << "stack is not empty " << endl;
}
return 0;
}
Output
size of the stack is 5
top of the stack is 4
elements of the stack are
4 3 2 1 0
finally stack is empty
One different task is:
swap(): Swap work swaps the components in a single stack to other.
#include <iostream>
#include <stack>
using namespace std;
int main(){
stack <int> stk1, stk2;
for (int i=1; i<6; i++){
stk1.push(i+10);
}
cout << "elements 11, 12, 13, 14, 15 pushed into stack 1" << endl;
for (int i=1; i<6; i++){
stk2.push(i*10);
}
cout << "elements 10, 20, 30, 40, 50 pushed into stack 2" << endl;
cout << "doing swapping operation..... " << endl;
stk1.swap(stk2);
cout << "after swapping " << endl;
cout << "elements of stack 1 are " ;
for (int i=0; i<5; i++){
cout << stk1.top() << " ";
stk1.pop();
}
cout << endl;
cout << "elements of stack 2 are " ;
for (int i=0; i<5; i++){
cout << stk2.top() << " ";
stk2.pop();
}
return 0;
}
Output
elements 11, 12, 13, 14, 15 pushed into stack 1
elements 10, 20, 30, 40, 50 pushed into stack 2
doing swapping operation…..
after swapping
elements of stack 1 are 50 40 30 20 10
elements of stack 2 are 15 14 13 12 11
Remark beneath on the off chance that you have any inquiries identified with above instructional exercise for stl stack or std:: stack.