
- 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++ multimap::crend() Function
The C++ std::multimap::crend() function is used to return a constant reverse iterator to the element preceding the first element of the multimap, marking its end in reverse order. This itearor cannot be used to modify the elements it points to. It is used to iterator over the multimap in reverse without altering the elements, ensuring read-only access. The time complexity of this function is constant i.e.O(1).
Syntax
Following is the syntax for std::multimap::crend() function.
const_reverse_iterator crend() const noexcept;
Parameters
It does not accepts any parameter
Return value
This function returns a constant reverse iterator.
Example
In the following example, we are going to demonstrate the usage of crend() function.
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a = {{2, "B"}, {1, "C"}, {3, "A"}}; for (auto x = a.crbegin(); x != a.crend(); ++x) { std::cout << x->first << ": " << x->second << std::endl; } return 0; }
Output
Following is the output of the above code −
3: A 2: B 1: C
Example
Consider the following example, where we are going to check whether the multimap is empty or not.
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a; if (a.crbegin() == a.crend()) { std::cout << "Multimap is empty." << std::endl; } else { std::cout << "Multimap is not empty." << std::endl; } return 0; }
Output
Output of the above code is as follows −
Multimap is empty.
Example
In the following example, we are going to find the largest key in the multimap.
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a = {{4, "A"}, {3, "B"}, {1, "C"}}; auto x = a.crbegin(); if (x != a.crend()) { std::cout << "" << x->first << std::endl; } return 0; }
Output
If we run the above code it will generate the following output −
4
Example
Following is the example, where we are going to count the number of elements in the multimap with the value "B".
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a = {{3, "A"}, {1, "B"}, {1, "B"}, {1, "B"}}; int x = 0; for (auto y = a.crbegin(); y != a.crend(); ++y) { if (y->second == "B") { ++x; } } std::cout << " " << x << std::endl; return 0; }
Output
Let us compile and run the above program, this will produce the following result −
3