11#ifndef CP_ALGO_UTIL_big_alloc_HPP
22#define CP_ALGO_UTIL_big_alloc_HPP
33
4+ #include < set>
45#include < map>
56#include < deque>
67#include < stack>
1011#include < cstddef>
1112#include < iostream>
1213#include < generator>
14+ #include < forward_list>
1315
1416// Single macro to detect POSIX platforms (Linux, Unix, macOS)
1517#if defined(__linux__) || defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
@@ -67,21 +69,18 @@ namespace cp_algo {
6769 }
6870 };
6971
70- template <typename T>
71- using big_vector = std::vector<T, big_alloc<T>>;
72- template <typename T>
73- using big_basic_string = std::basic_string<T, std::char_traits<T>, big_alloc<T>>;
74- template <typename T>
75- using big_deque = std::deque<T, big_alloc<T>>;
72+ template <typename T> using big_vector = std::vector<T, big_alloc<T>>;
73+ template <typename T> using big_basic_string = std::basic_string<T, std::char_traits<T>, big_alloc<T>>;
74+ template <typename T> using big_deque = std::deque<T, big_alloc<T>>;
75+ template <typename T> using big_stack = std::stack<T, big_deque<T>>;
76+ template <typename T> using big_queue = std::queue<T, big_deque<T>>;
77+ template <typename T> using big_priority_queue = std::priority_queue<T, big_vector<T>>;
78+ template <typename T> using big_forward_list = std::forward_list<T, big_alloc<T>>;
79+ using big_string = big_basic_string<char >;
7680 template <typename Key, typename Value, typename Compare = std::less<Key>>
7781 using big_map = std::map<Key, Value, Compare, big_alloc<std::pair<const Key, Value>>>;
78- using big_string = big_basic_string<char >;
79- template <typename T>
80- using big_stack = std::stack<T, big_deque<T>>;
81- template <typename T>
82- using big_queue = std::queue<T, big_deque<T>>;
83- template <typename T>
84- using big_priority_queue = std::priority_queue<T, big_vector<T>>;
82+ template <typename T, typename Compare = std::less<T>>
83+ using big_multiset = std::multiset<T, Compare, big_alloc<T>>;
8584 template <typename Ref, typename V = void >
8685 using big_generator = std::generator<Ref, V, big_alloc<std::byte>>;
8786}
@@ -91,4 +90,5 @@ namespace std::ranges {
9190 template <typename Ref, typename V>
9291 elements_of (cp_algo::big_generator<Ref, V>&&) -> elements_of<cp_algo::big_generator<Ref, V>&&, cp_algo::big_alloc<std::byte>>;
9392}
93+
9494#endif // CP_ALGO_UTIL_big_alloc_HPP
0 commit comments