Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

Аллокатор (англ. Allocator) или распределитель памяти в языке программирования C++ — специализированный класс, реализующий и инкапсулирующий малозначимые (с прикладной точки зрения) детали распределения и освобождения ресурсов компьютерной памяти.

Описание

Все классы стандартной библиотеки шаблонов STL управляют памятью с помощью встроенных аллокаторов. Явное задание аллокатора не является обязательным требованием классов-контейнеров библиотеки, однако их можно передавать в конструкторы в качестве параметров шаблона[1]. Причиной внедрения в библиотеку STL механизма аллокаторов стала необходимость абстрагироваться при проектировании шаблонов от ограничений модели памяти вычислительной техники[2].

В дополнение к этому, многие стандартные библиотечные классы снабжены возможностью подключать пользовательские реализации аллокаторов вместо системных. Отмечается, что стандартные аллокаторы часто основаны на использовании неформализованных языковых тонкостей и поэтому они вызывают наибольшее количество проблем при обеспечении кроссплатформенной переносимости кода[3].

Синтаксис

Тип значения аллокатора определяет тип того объекта, под хранения которого выделяется память. Если данным типом является T, то вызов функции-члена allocate(n) позволяет сформировать запрос на выделение пространства в машинной памяти для хранения n объектов типа T[4].

После объявления и выделения памяти объекты с нестандартным аллокатором не отличаются от остальных объектов, однако смешивать их друг с другом настоятельно не рекомендуется из-за непредсказуемых последствий. Для идентификации объектов с разными типами распределения памяти можно пользоваться стандартными функциями доступа к аллокаторам get_allocator() в комбинации с операцией сравнения ==[5].

Примечания

  1. Остерн, 2004, Аллокаторы, с. 96.
  2. G. Andreas, F. Masur Allocators (STL) Архивная копия от 7 февраля 2019 на Wayback Machine www.codeguru.com, 2004
  3. Остерн, 2004, Аллокатор, с. 176—177.
  4. Остерн, 2004, Аллокатор, с. 178.
  5. Джосьютис, 2004, Использование распределителей в прикладном программировании, с. 701—702.

Источники

  • Н. Джосьютис. C++. Стандартная библиотека. Для профессионалов = The C++ Standard Library. — СПб. : Питер, 2004. — 730 с. — ISBN 5-94723-635-4.
  • М. Остерн. Обобщённое программирование и STL. Использование и наращивание стандартной библиотеки C++ = Generic Programming and the STL: Using and Extending the C++ Standard Template Library. — СПб. : Невский Диалект, 2004. — 544 с. — ISBN 0-201-30956-4.
Эта страница в последний раз была отредактирована 5 июля 2023 в 10:23.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).