Прошу, помогите с пониманием аллокаторов в c++.
Заметил, что vector можно создавать, используя некий "аллокатор". Задался вопросом, пошёл в интернет. Но по запросам, которые, казалось бы, должны давать ответ, я получил лишь сухие статьи, а стаковерфлоу показывает мне вопросы типа "как написать аллокатор" и т.д.
Все, что я понял - это то, что аллокатор используется для управления памятью. Можно написать свой, который будет управлять ей как-то по-умному.
А в чем тогда суть? Что, я могу, к примеру, написать аллокатор, который будет выделять память не последовательно, а кусочками в разных уголках памяти?
И если я создам вектор с таким аллокатором, то почему в справке по контейнеру vector написано, что, мол, он хранит все данные последовательно и непрерывно в памяти?
Или я чего-то не понимаю?
Единственное, что я, кажется, понял - так это то, что стандартный аллокатор выделяет память через оператор new, используя стандартный конструктор, что "не особо эффективно, учитывая, что не всегда нужно инициализировать все объекты, под которые мы выделяем место".
Так для чего же на самом деле нужны аллокаторы? Можно объяснить как-то кратко и на пальцах, почему и зачем?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости