
- 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++ scoped_allocator::max_size() Function
The std::scoped_allocator::max_size() function in C++, is used to return the maximum number of elements that can be allocated by a specific allocator type. It helps to manage a memory allocation efficiently by providing an upper limit on the number of elements an allocator can handle.
This function is used in situations where memory usage needs to be controlled or when allocating multiple containers with different sizes.
Syntax
Following is the syntax for std::scoped_allocator::max_size() function.
size_type max_size() const;
Parameters
This function does not accepts any parameter.
Return Value
This function returns the maximum allocation size for outeralloc.
Example 1
Let's look at the following example, where we are going to use the max_size() to determine the maximum number of int element that can be allocated by the allocator.
#include <iostream> #include <memory> #include <scoped_allocator> int main() { std::allocator < int > x; std::cout << "Max_size for Allocation : " << x.max_size() << std::endl; return 0; }
Output
Output of the above code is as follows −
Max_size for Allocation : 2305843009213693951
Example 2
Consider the following example, where we are going to use the max_size() with the custom struct demo and observing the output.
#include <iostream> #include <memory> #include <scoped_allocator> struct demo { int a; double b; }; int main() { std::allocator < demo > x; std::cout << "Max_size for Allocation: " << x.max_size() << std::endl; return 0; }
Output
Output of the above code is as follows −
Max_size for Allocation: 576460752303423487