
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ Deque::at() Function
The C++ std::deque::at() function is used to provide the access to the elements based on their position index, allowing both read and write operations. It is useful for accessing the element in the deque, when the exact boundary checking is necessary.
Unlike operator[], at() function validates the index against bounds and throws an out of range exception if the index is invalid.
Syntax
Following is the syntax for std::deque::at() function.
reference at (size_type n); const_reference at (size_type n) const;
Parameters
- n − It indicates the position of an element in the container.
Return value
This function returns the element at the specified position in the container.
Exceptions
It throws out of range exception if n is not valid.
Time complexity
The time complexity of this function is Constant i.e. O(1)
Example
Let's look at the following example, where we are going to demonstrate the basic usage of at() function.
#include <iostream> #include <deque> int main() { std::deque<char> a = {'A', 'B', 'C', 'D'}; char element = a.at(2); std::cout << "Element at given index : " << element << std::endl; return 0; }
Output
Output of the above code is as follows −
Element at given index : C
Example
Consider the following example, where we are going to modify the element.
#include <iostream> #include <deque> int main() { std::deque<int> a = {1,22,3,4444}; a.at(2) = 333; for (int elem : a) { std::cout << elem << " "; } std::cout << std::endl; return 0; }
Output
Following is the output of the above code −
1 22 333 4444
Example
In the following example, we are going to access the element that is out of range and observing the output.
#include <iostream> #include <deque> int main() { std::deque<char> a = {'A', 'B', 'C', 'D'}; try { char element = a.at(6); std::cout << "Element at given index : " << element << std::endl; } catch (const std::out_of_range& oor) { std::cerr << "Out of Range error: " << oor.what() << std::endl; } return 0; }
Output
If we run the above code it will generate the following output −
Out of Range error: deque::_M_range_check: __n (which is 6)>= this->size() (which is 4)