
- 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::get_allocator() Function
The C++ std::multimap::get_allocator() function is used to return the allocator object used by the multimap to manage memory. An allocator in C++ defines the memory model to be used for the container elements. This function provides access to the allocator, enabling operations like custom memory allocation and deallocation. The time complexity of this function is constant i.e.O(1).
Syntax
Following is the syntax for std::multimap::get_allocator() function.
allocator_type get_allocator() const noexcept;
Parameters
It does not accept any parameters.
Return value
This function returns an allocator associated with multimap.
Example
Let's look at the following example, where we are going to demonstrate the usage of get_allocator() function.
#include <iostream> #include <map> int main() { std::multimap<int, int> a; auto x = a.get_allocator(); std::pair<const int, int>* y = x.allocate(3); std::cout << "Allocated Memory At: " << y << std::endl; x.deallocate(y, 3); return 0; }
Output
Output of the above code is as follows −
Allocated Memory At: 0x55e143b18eb0
Example
Consider the following example, where we are going to allocate the array of elements.
#include <iostream> #include <map> int main() { std::multimap<int, std::string> a; auto x = a.get_allocator(); auto y = x.allocate(3); for (int i = 0; i < 3; ++i) { x.construct(y + i, std::pair<const int, std::string>(i, "value" + std::to_string(i))); } for (int i = 0; i < 3; ++i) { std::cout << (y + i)->first << " : " << (y + i)->second << std::endl; } for (int i = 0; i < 3; ++i) { x.destroy(y + i); } x.deallocate(y, 3); return 0; }
Output
Following is the output of the above code −
0 : value0 1 : value1 2 : value2
Example
In the following example, we are going to allocate and construct the multiple elements.
#include <iostream> #include <map> int main() { std::multimap<int, int> a; auto x = a.get_allocator(); std::pair<const int, int>* p = x.allocate(2); x.construct(&p[0], std::make_pair(1, 11)); x.construct(&p[1], std::make_pair(2, 22)); for (int i = 0; i < 2; ++i) { std::cout << "Element " << i << ": (" << p[i].first << ", " << p[i].second << ")" << std::endl; } for (int i = 0; i < 2; ++i) { x.destroy(&p[i]); } x.deallocate(p, 3); return 0; }
Output
If we run the above code it will generate the following output −
Element 0: (1, 11) Element 1: (2, 22)