queue push() and pop() in C++ STL
The queue is a type of container which operates in a First In First Out (FIFO) type of arrangement. Elements are inserted at the back(end) and are deleted from the front of the queue.
queue::push()
push() function is used to insert an element at the back of the queue. This is an inbuilt function from C++ Standard Template Library(STL). This function belongs to the <queue> header file. The element is added to the queue container and the size of the queue is increased by 1.
Complexity: O(1) (Queue push() operation take constant time complexity.)
Syntax :
queuename.push(value)
Parameters: The value of the element to be inserted is passed as the parameter.
Result: Adds an element of value same as that of the parameter passed at the back of the queue.
Examples:
Input : myqueue myqueue.push(6); Output : 6 Input : myqueue myqueue.push(0); myqueue.push(1); Output : 0, 1
Errors and Exceptions:
- Shows an error if the value passed doesn’t match the queue type.
- Shows no exception throw guarantee if the parameter doesn’t throw any exception.
CPP
// CPP program to illustrate // Implementation of push() function #include <iostream> #include <queue> using namespace std; int main() { // Empty Queue queue< int > myqueue; myqueue.push(0); myqueue.push(1); myqueue.push(2); // Printing content of queue while (!myqueue.empty()) { cout << ' ' << myqueue.front(); myqueue.pop(); } } |
0 1 2
Note: Here, output is printed on the basis of FIFO property.
queue::pop()
pop() function is used to remove an element from the front of the queue(oldest element in the queue). This is an inbuilt function from C++ Standard Template Library(STL). This function belongs to the <queue> header file. The element is removed from the queue container and the size of the queue is decreased by 1.
Syntax :
queuename.pop()
Complexity: O(1) (Queue pop() operation take constant time complexity.)
Parameters: No parameters are passed
Result: Removes the oldest element in the queue or basically the front element.
Examples:
Input : myqueue = 1, 2, 3 myqueue.pop(); Output : 2, 3 Input : myqueue = 3, 2, 1 myqueue.pop(); Output : 2, 1
Errors and Exceptions:
- Shows error if a parameter is passed.
- Shows no exception throw guarantee if the parameter doesn’t throw any exception.
CPP
// CPP program to illustrate // Implementation of pop() function #include <iostream> #include <queue> using namespace std; int main() { // Empty Queue queue< int > myqueue; myqueue.push(0); myqueue.push(1); myqueue.push(2); // queue becomes 0, 1, 2 myqueue.pop(); myqueue.pop(); // queue becomes 2 // Printing content of queue while (!myqueue.empty()) { cout << ' ' << myqueue.front(); myqueue.pop(); } } |
2
Note: Here, output is printed on the basis of FIFO property.
Application: push() and pop()
Given a number of integers, add them to the queue and find the size of the queue without using the size function.
Input : 5, 13, 0, 9, 4 Output: 5
Algorithm:
1. Push the given elements to the queue container one by one.
2. Keep popping the elements of the queue until the queue becomes empty, and increment the counter variable.
3. Print the counter variable.
CPP
// CPP program to illustrate // Application of push() and pop() function #include <iostream> #include <queue> using namespace std; int main() { // Empty Queue int c = 0; queue< int > myqueue; myqueue.push(5); myqueue.push(13); myqueue.push(0); myqueue.push(9); myqueue.push(4); // queue becomes 5, 13, 0, 9, 4 // Counting number of elements in queue while (!myqueue.empty()) { myqueue.pop(); c++; } cout << c; } |
5
Let us see the differences in a tabular form -:
queue push() | queue pop() | |
1. | It is used to insert a new element at the end of the queue. | It is used to remove the next element in the queue |
2. | Its syntax is -: push (value_type&& val); |
Its syntax is -: pop(); |
3. | It take one parameter that is the value to be inserted. | It does not take any parameter. |
4. | Its return type is void. | Its return type is void. |
5. | It is present in <queue> header file. | It is present in <queue> header file. |
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Please Login to comment...