std::allocator() in C++ with Examples Last Updated : 04 Jun, 2022 Comments Improve Suggest changes Like Article Like Report Allocators are objects responsible for encapsulating memory management. std::allocator is used when you want to separate allocation and do construction in two steps. It is also used when separate destruction and deallocation is done in two steps. All the STL containers in C++ have a type parameter Allocator that is by default std::allocator. The default allocator simply uses the operators new and delete to obtain and release memory. Declaration : template <class T> class allocator; Member functions associated with std::allocator() : address: It is used for obtaining the address of an object although it is removed in C++20.construct: It is used to construct an object.It is also removed in C++20.destroy: It is used to destruct an object in allocated storage.It is also removed in C++20.max_size: It returns the largest supported allocation size.It is deprecated in C++17 and removed in C++20.allocate: Used for allocation of memory.deallocate: Used for deallocation of memory. Below programs illustrate the above mentioned function: Program 1: CPP // C++ program for illustration // of std::allocator() function #include <iostream> #include <memory> using namespace std; int main() { // allocator for integer values allocator<int> myAllocator; // allocate space for five ints int* arr = myAllocator.allocate(5); // construct arr[0] and arr[3] // myAllocator.construct(arr, 100); // no longer allowed in C++20 arr[0] = 100; // do this instead arr[3] = 10; cout << arr[3] << endl; cout << arr[0] << endl; // deallocate space for five ints myAllocator.deallocate(arr, 5); return 0; } Output:10 100 Program 2: CPP // C++ program for illustration // of std::allocator() function #include <iostream> #include <memory> #include <string> using namespace std; int main() { // allocator for string values allocator<string> myAllocator; // allocate space for three strings string* str = myAllocator.allocate(3); // construct these 3 strings myAllocator.construct(str, "Geeks"); myAllocator.construct(str + 1, "for"); myAllocator.construct(str + 2, "Geeks"); cout << str[0] << str[1] << str[2]; // destroy these 3 strings myAllocator.destroy(str); myAllocator.destroy(str + 1); myAllocator.destroy(str + 2); // deallocate space for 3 strings myAllocator.deallocate(str, 3); } Output:GeeksforGeeksAdvantage of using std::allocator allocator is the memory allocator for the STL containers. This container can separate the memory allocation and de-allocation from the initialization and destruction of their elements. Therefore, a call of vec.reserve(n) of a vector vec allocates only memory for at least n elements. The constructor for each element will not be executed.allocator can be adjusted according to the container of your need, for example, vector where you only want to allocate occasionally.On the contrary, new doesn't allow to have control over which constructors are called and simply construct all objects at the same time. That's an advantage of std:: allocator over new Comment More infoAdvertise with us Next Article std::allocator() in C++ with Examples V vivekkothari Follow Improve Article Tags : C++ CPP-Functions cpp-class Practice Tags : CPP Similar Reads std::to_address in C++ with Examples The std::to_address, introduced in C++20, is used to obtain the address represented by the specified pointer without forming a reference to the pointee. The existing std::addressof cannot do std::addressof(*ptr) because *ptr isnât always an object. The std::to_address solves these issues for us. Syn 2 min read C++ STL unordered_set get_allocator() with Examples The get_allocator() method of unordered_set is the part of Standard Template Library(STL) of C++. This method gets the stored allocator object and returns it. Syntax: allocator_type get_allocator() const; where Allocator_type is the type of allocator used by the container. Return Value: It returns t 2 min read Array of list in C++ with Examples What is an array? An array in any programming language is a data structure that is used to store elements or data items of similar data types at contiguous memory locations and elements can be accessed randomly using indices of an array. Arrays are efficient when we want to store a large number of e 5 min read array data() in C++ STL with Examples The array::data() is a built-in function in C++ STL which returns an pointer pointing to the first element in the array object. Syntax: array_name.data() Parameters: The function does not accept any parameters. Return Value: The function returns an pointer. Below programs illustrate the above functi 2 min read set get_allocator() in C++ STL The set::get_allocator() in C++ STL is an in-built function which returns the copy of the allocator object associated with the set. Syntax: mulset.get_allocator(); Parameters: This function does not accept any parameters. Return Value: This function returns the allocator associated with the set. Tim 2 min read list get_allocator in C++ STL list::get_allocator() is an inbuilt in function in C++ STL which is used to get allocator of container list. Syntax: Allocator_type get_allocator() Parameters: This function does not except any parameter. Return value: Returns an allocator associated with list. Below programs explains clearly the li 2 min read Storage Classes in C++ with Examples C++ Storage Classes are used to describe the characteristics of a variable/function. It determines the lifetime, visibility, default value, and storage location which helps us to trace the existence of a particular variable during the runtime of a program. Storage class specifiers are used to specif 6 min read Dynamic Constructor in C++ with Examples When allocation of memory is done dynamically using dynamic memory allocator new in a constructor, it is known as dynamic constructor. By using this, we can dynamically initialize the objects. Example 1:  C++ #include <iostream> using namespace std; class geeks { const char* p; public: // def 3 min read deque get_allocator in C++ STL deque::get_allocator() is a built in function in C++ STL which is used to get allocator of container deque. Syntax: Allocator_type get_allocator() Parameters: This function does not accept any parameter. Return value: Returns an allocator associated with deque. Below programs illustrate the working 2 min read map get_allocator in C++ STL map::get_allocator() is a built in function in C++ STL which is used to get allocator of container map. Syntax: Allocator_type get_allocator() Parameters: This function does not accept any parameter. Return value: Returns an allocator associated with map. Below programs explains clearly the map::get 1 min read Like