Open In App

queue::front() and queue::back() in C++ STL

Last Updated : 23 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Queue are a type of container adaptors which operate in a first in first out (FIFO) type of arrangement. Elements are inserted at the back (end) and are deleted from the front.
 

queue::front()

This function is used to reference the first or the oldest element of the queue container. This function can be used to fetch the first element of a queue.
Syntax : 
 

queuename.front()
Parameters :
No value is needed to pass as the parameter.
Returns :
Direct reference to the first element of the queue container.

Examples: 
 

Input  :  myqueue = 1, 2, 3
          myqueue.front();
Output :  1

Input  :  myqueue = 3, 4, 1, 7, 3
          myqueue.front();
Output :  3

Errors and Exceptions 
 

  1. If the queue container is empty, it causes undefined behavior
  2. It has a no exception throw guarantee if the queue is not empty

 

CPP




// CPP program to illustrate
// Implementation of front() function
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
    queue<int> myqueue;
    myqueue.push(3);
    myqueue.push(4);
    myqueue.push(1);
    myqueue.push(7);
   
    // Queue becomes 3, 4, 1, 7
 
    cout << myqueue.front();
    return 0;
}


Output: 
 

3

 

queue::back()

This function is used to reference the last or the newest element of the queue container. This function can be used to fetch the first element from the back of a queue.
Syntax : 
 

queuename.back()
Parameters :
No value is needed to pass as the parameter.
Returns :
Direct reference to the last element of the queue container.

Examples: 
 

Input  :  myqueue = 1, 2, 3
          myqueue.back();
Output :  3

Input  :  myqueue = 3, 4, 1, 7, 3
          myqueue.back();
Output :  3

Errors and Exceptions 
 

  1. If the queue container is empty, it causes undefined behavior
  2. It has a no exception throw guarantee if the queue is not empty

 

CPP




// CPP program to illustrate
// Implementation of back() function
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
    queue<int> myqueue;
    myqueue.push(3);
    myqueue.push(4);
    myqueue.push(1);
    myqueue.push(7);
 
    // Queue becomes 3, 4, 1, 7
 
    cout << myqueue.back();
    return 0;
}


Output: 
 

7

Application : 
Given an empty queue of integers, add numbers to the queue, then print the difference between the first and the last element. 
 

Input  : 1, 2, 3, 4, 5, 6, 7, 8
Output : 7
Explanation - Last element = 8, First element = 1, Difference = 7

Algorithm 
1. Add numbers to the queue using push() function 
2. Compare the first and the last element. 
3. If first element is larger, subtract last element from it and print it. 
4. Else subtract first element from the last element and print it.
 

CPP




// CPP program to illustrate
// application Of front() and back() function
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
    queue<int> myqueue;
    myqueue.push(8);
    myqueue.push(7);
    myqueue.push(6);
    myqueue.push(5);
    myqueue.push(4);
    myqueue.push(3);
    myqueue.push(2);
    myqueue.push(1);
 
    // Queue becomes 1, 2, 3, 4, 5, 6, 7, 8
 
    if (myqueue.front() > myqueue.back()) {
        cout << myqueue.front() - myqueue.back();
    }
    else if (myqueue.front() < myqueue.back()) {
        cout << myqueue.back() - myqueue.front();
    }
    else
        cout << "0";
}


Output: 
 

7

 Let us see the differences in a tabular form -:

  queue::front()  queue::back()
1. It is used to return a reference to the next element in the queue. It is used to return a reference to the last element in the queue.
2.

Its syntax is -:

front();

Its syntax is -:

back();

3. It does not take any parameters. It does not take any parameters.
4. Its complexity is constant. Its complexity is constant.
5. It is defined in <queue> header file. It is defined in <queue> header file.


Previous Article
Next Article

Similar Reads

Design Front Middle Back Queue using STL
Design a data structure that supports the following operations in queue efficiently: push__front(x): Insert an element at the front of the queue.push__middle(x): Inserts element at the middle of the queue.push__back(x): Inserts element at the back of the queue.pop__front() Removes the front element of the queue and returns it. If the queue is empty
8 min read
list::front() and list::back() in C++ STL
Lists are containers used in C++ to store data in a non-contiguous fashion, Normally, Arrays and Vectors are contiguous in nature, therefore the insertion and deletion operations are costlier as compared to the insertion and deletion option in Lists. list::front() This function is used to reference the first element of the list container. This func
3 min read
vector::front() and vector::back() in C++ STL
Vectors are same as dynamic arrays with the ability to resize itself automatically when an element is inserted or deleted, with their storage being handled automatically by the container. vector::front() This function can be used to fetch the first element of a vector container.Syntax : vectorname.front() Parameters : No value is needed to pass as
3 min read
array::front() and array::back() in C++ STL
Array classes are generally more efficient, light-weight, and reliable than C-style arrays. The introduction of array class from C++11 has offered a better alternative for C-style arrays. array::front() This function is used to reference the first element of the array container. This function can be used to fetch the first element of an array. Synt
3 min read
Deque::front() and deque::back() in C++ STL
Deque or Double Ended queues are sequence containers with the feature of expansion and contraction on both ends. They are similar to vectors, but are more efficient in case of insertion and deletion of elements at the end, and also at the beginning. Unlike vectors, contiguous storage allocation may not be guaranteed in the deque. deque::front()fron
4 min read
Sort Permutation of 1 to N by removing any element and inserting it to front or back
Given an array arr[] of size N having distinct integers from 1 to N, the task is to count the minimum number of steps required to sort the array in increasing order by removing any element and inserting it to the front or back of the array. Examples: Input: arr[ ] = {4, 1, 3, 2}Output: 2Explanation:The given array can be sorted in increasing order
5 min read
queue::empty() and queue::size() in C++ STL
Queue is a type of container adaptor that operate in a first in first out (FIFO) type of arrangement. Elements are inserted at the back (end) and are deleted from the front. queue::empty() empty() function is used to check if the queue container is empty or not. SyntaxqueueName.empty()ParametersThis function does not accept any parameter.Return Val
4 min read
list back() function in C++ STL
The list::back() function in C++ STL returns a direct reference to the last element in the list container. This function is different from the list::end() function as the end() function returns only the iterator to the last element. Syntaxlist_name.back();ParametersThis function does not accept any parameter.Return ValueReturns a direct reference t
1 min read
forward_list::front() and forward_list::empty() in C++ STL
Forward list in STL implements singly linked list. Introduced from C++11, forward list are useful than other containers in insertion, removal and moving operations (like sort) and allows time constant insertion and removal of elements.It differs from list by the fact that forward list keeps track of location of only next element while list keeps tr
3 min read
list front() function in C++ STL
The list::front() is a built-in function in C++ STL which is used to return a reference to the first element in a list container. Unlike the list::begin() function, this function returns a direct reference to the first element in the list container. Syntaxlist_name.front(); Parameters This function does not accept any parameter, it simply returns a
1 min read
Practice Tags :