Updated March 23, 2023
Introduction to C++ Queue
Queue in C++ is a type of data structure that is designed to work as a First In First Out (FIFO) data container. Data entered from one side of a queue is extracted from the other side of a queue in a FIFO manner. In C++, std:: queue class provides all queue related functionalities to programmers. In this article, how queues can be used in C++ is explained along with its syntax, member types, and available queue functions.
Syntax:
The syntax for C++ Queue is as below:
// Syntax for queue in C++
using namespace std;
queue<data_type>queue_name;
To use above syntax for queue in C++, it is important to include #include<queue> header file.
queue_name is the user-defined name of the queue.
data_type is the data type of all members of the queue.
How does Queue Work in C++?
Queue in C++ can be declared using syntax explained above. For example “queue<int>roll_number“ declares queue named as roll_number with all integer members. The declared queue here will be worked as FIFO(First In First Out) means element entered first in the queue will be extracted first and element inserted last will be extracted last. std:: queue class in C++ also provides many useful in-built member functions for programmers to use with a queue.
As shown in below figure, if elements are inserted in the order of 1->2->3->4->5 in the queue then they are extracted from the queue in the order of first inserted element will be extracted first and then rest that is in the order of 1->2->3->4->5.
Please have a look at below sample code to understand how a queue works in C++.
Code:
// C++ program to understand queue container
// including required header files
#include <iostream>
#include <queue> // header file to use queue functionalities in C++
using namespace std;
int main()
{
// declaration of queue named queue_sample
queue<int> queue_sample;
// inserting element in the queue container
queue_sample.push(1);
queue_sample.push(2);
queue_sample.push(3);
queue_sample.push(4);
queue_sample.push(5);
// Removing/Extracting the content from the queue container
while (!queue_sample.empty()) {
cout << ' ' << queue_sample.front();
queue_sample.pop();
}
return 0;
}
Output:
C++ Queue Member Types
Following are the details about C++ queue member types:
- container_type: container_type is the member type that provides a type of underlying container which is to be adapted by the queue.
- size_type: size_type is an unsigned integer which will show the number of elements in the queue.
- value_type: value_type is a type that represents the type of elements stored in the queue container.
Functions of C++ Queue
The following are different C++ queue functions which are mentioned along with an explanation of each function.
1. queue::empty()
This function is used to check whether a queue is empty or filled.
Parameter: There is no parameter value which needs to be provided to this function.
Return value: The return value of the function = true if the queue is empty with no element inside it. The return value of the function = false if the queue is non-empty.
2. queue::size()
This function is used to check the size or number of member elements of the queue.
Parameter: There is no parameter value which needs to be provided to this function.
Return value: This function returns size_type member type which is an unsigned integer type.
3. queue::front()
This function can be used to get details or references related to the front element of the queue. As the queue is First In First Out(FIFO) container, the front element is nothing but the oldest element present in the queue container.
Parameter: There is no parameter value which needs to be provided to this function.
Return value: This function returns a reference to the front or first element of the queue container.
4. queue::back()
This function can be used to get details or references related to the last element of the queue. As the queue is the First In First Out(FIFO) container, the last element is nothing but the newest element present in the queue container.
Parameter: There is no parameter value which needs to be provided to this function.
Return value: This function returns a reference to the last or newest inserted element of the queue container.
5. queue::push(const value_type& value)
This function can be used to insert a new element in the queue. This function inserts a new element after its last inserted element. The process to insert a new element in the queue is called enqueue operation.
Parameter: The parameter of this function is the value with which we want inserted element to be initialized. The member type value_type is a type of element inserted in the queue container.
Return value: This function returns nothing.
6. queue::pop()
This function is used to remove an element from the queue container. The element removed by this function will be the oldest element available in the queue. Because of the removal of one oldest element, after using this function, the size of the queue will be reduced by one. The process to remove an element from the queue is also called a dequeue operation.
Parameter: There is no parameter value which needs to be provided to this function.
Return value: This function returns nothing.
7. queue::swap(queue& queue2)
This function is used to swap the contents of two queues. After swapping two queues contents, it may be possible that the size of the two queues may be different than it was initially before swapping content. The type of two queues must be of the same type to swap the content using the queue::swap() function.
Parameter: The parameter of this function will be another queue container of a similar type.
Return value: This function returns nothing.
8. queue::emplace(const value_type& value)
This function is used to insert new elements in the queue container. It adds a new element at the end of the queue container.
Parameter: The parameter of this function will be value to be inserted at the end of the queue container.
Return value: This function returns nothing.
Conclusion
In this article, a queue container is explained along with its declaration and usage in C++. Different useful inbuilt member functions available in C++ are also explained in this article which is helpful to programmers to use queue containers in a more efficient way.
Recommended Articles
This is a guide to C++ Queue. Here we discuss the Introduction and How does Queue work in C++ along with Function and its Parameter. You may also look at the following articles to learn more –