EDUCBA

EDUCBA

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

C++ Queue

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » C++ Queue

c++ queue

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:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

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.

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,899 ratings)
Course Price

View Course

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

C++ Queue-1.1

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-1.2

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 –

  1. Leap Year Program in C++
  2. Queue in Java
  3. Queue in C#
  4. Queue in Python

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