
- 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::crbegin() Function
The C++ std::deque::crbegin() function is used to return a constant reverse iterator pointing to the last element in the deque. This iterator traverse the deque from the end to the beginning, ensuring elements are accessed in reverse order. It is useful for iterating over the elements of a deque in reverse order without altering their values.
The constant iterator, prevents the modification of the elements that point to, providing the read-only access.
Syntax
Following is the syntax for std::deque::crbegin() function.
const_reverse_iterator crbegin() const noexcept;
Parameters
It does not accepts any parameters.
Return value
It returns a reverse iterator that point to the last element in the deque.
Exceptions
This function never throws exception.
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 crbegin() function.
#include <iostream> #include <deque> int main() { std::deque<char> a = {'A', 'B', 'C', 'D'}; std::deque<char>::const_reverse_iterator x = a.crbegin(); std::cout << " " << *x << std::endl; return 0; }
Output
Output of the above code is as follows −
D
Example
Consider the following example, where we are going to use the loop to iterate over the deque in reverse order using crbegin() and crend().
#include <iostream> #include <deque> int main() { std::deque<char> a = {'A', 'B', 'C', 'D'}; for (auto x = a.crbegin(); x != a.crend(); ++x) { std::cout << *x << " "; } return 0; }
Output
Following is the output of the above code −
D C B A
Example
Let's look at the following example, where we are going to search for the element in the deque while iterating in reverse order.
#include <iostream> #include <deque> #include <algorithm> int main() { std::deque<char> a = {'A', 'B', 'C', 'D'}; auto x = std::find(a.crbegin(), a.crend(), 'C'); if (x != a.crend()) { std::cout << "Element found at position: " << std::distance(a.crbegin(), x) << std::endl; } else { std::cout << "Element not found." << std::endl; } return 0; }
Output
If we run the above code it will generate the following output −
Element found at position: 1