C++ Deque::operator[] Function



The C++ std::deque::operator[] function allows to access or modify the element at a specific index, similar to how arrays and vetors work. The function takes a single argument, the index, and returns a reference to the element at that position.

Unlike at(), it does not perform bounds checking, so accessing an out-of-range index results in undefined behaviour.

Syntax

Following is the syntax for std::deque::operator[] function.

reference operator[] (size_type n);
const_reference operator[] (size_type n) const;

Parameters

  • n − It indicates the position of an element in the container.

Return value

It returns the element at the specified position in the container.

Exceptions

It throws undefined behaviour if the index is out of range.

Time complexity

The time complexity of this function is constant i.e. O(1)

Example

In the following example, we are going to consider the basic usage of the operator[] function.

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D'};
    std::cout << "Element at given index : " << a[1] << std::endl;
    return 0;
}

Output

Output of the above code is as follows −

Element at given index : B

Example

Consider the following example, where we are going to modify the element.

#include <iostream>
#include <deque>
int main()
{
    std::deque<char> a = {'A', 'B', 'C', 'D'};
    a[2] = 'Z';
    for (int x = 0; x < a.size(); ++x) {
        std::cout << a[x] << " ";
    }
    std::cout << std::endl;
    return 0;
}

Output

Following is the output of the above code −

A B Z D

Example

Let's look at the following example, where we are going to access the element that is out of range and observing the output.

#include <iostream>
#include <deque>
int main()
{
    std::deque<int> a = {01,12,23,34};
    std::cout << "Element at given index : " << a[5] << std::endl;
    return 0;
}

Output

If we run the above code it will generate the following output −

Element at given index : 0
deque.htm