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

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

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

Последовательный контейнер

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

Стандартная библиотека языка программирования C++

Ввод-вывод:

Многопоточность:

  • atomic (C++11)
  • condition_variable (C++11)
  • future (C++11)
  • mutex (C++11)
  • shared_mutex (C++14)
  • thread (C++11)

Прочие:

  • algorithm
  • bitset
  • chrono (C++11)
  • codecvt (C++11)
  • complex
  • exception
  • functional
  • initializer_list (C++11)
  • iterator
  • limits
  • locale
  • memory
  • new
  • numeric
  • random (C++11)
  • ratio (C++11)
  • regex (C++11)
  • stdexcept
  • string
  • system_error (C++11)
  • tuple (C++11)
  • typeindex (C++11)
  • typeinfo
  • type_traits (C++11)
  • utility
  • valarray
Стандартная библиотека шаблонов

Последовательные контейнеры:

  • array (C++11)
  • deque
  • forward_list (C++11)
  • list
  • vector, vector<bool>

Ассоциативные контейнеры:

  • map
  • set
  • multimap
  • multiset
  • unordered_map (C++11)
  • unordered_set (C++11)
  • unordered_multimap (C++11)
  • unordered_multiset (C++11)

Контейнеры-адаптеры:

  • stack
  • priority_queue
  • queue
Стандартная библиотека языка программирования Си

Последовательными контейнерами (англ. Sequence containers) в языке программирования C++ считаются несколько предопределённых шаблонных типов данных стандартной библиотеки STL, которые обеспечивают упорядоченный способ хранения своих элементов. Каждый из элементов такого контейнера имеет определённую позицию, которая зависит от времени и места помещения его в контейнер, но не зависит от значения элемента. Как правило, к последовательным контейнерам относятся списки, вектора, очереди двустороннего доступа, массивы (начиная со стандарта C++11) и ряд других. Обычно их реализуют на практике в виде связанного списка или массива[1][2].

Описание

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

Традиционно в категорию стандартных последовательных контейнеров входят массивы array, списки (как односвязные forward_list, так и двусвязные list), динамические вектора vector и очереди deque[4][5][6]. Иногда в их состав также включают строки string, а к нестандартным последовательным контейнерам относят списки slist и строковые данные rope[7].

Требования к элементам

Основная технологическая оснастка библиотеки STL (контейнеры, итераторы, алгоритмы) реализована в виде шаблонных классов. Как следствие, эта инфраструктура может одинаково эффективно обрабатывать как встроенные, так и пользовательские типы данных. Тем не менее, все элементы всех контейнеров библиотеки STL должны подчиняться ряду достаточно общих требований. Во-первых, они должны быть перемещаемыми и копируемыми. Во-вторых, к ним должно быть допустимо применение операции присваивания. В-третьих, для их уничтожения должен быть доступен деструктор. В дополнение к этим требованиям ряд последовательных контейнерных классов требует наличия конструктора по умолчанию, а в некоторых методах может потребоваться определённая операция сравнения на равенство operator==() для элементов[8][9].

Базовый функционал

С основными последовательными контейнерами связан набор стандартных операций, поддерживаемых всеми классами библиотеки STL для унифицированного доступа к своим элементам[10].

Название Функции
+ Объединение элементов
+= Добавление элементов в контейнер
<< Добавление элемента в контейнер
at() Доступ к произвольному элементу
front() и first() Предоставляют ссылку на первый элемент в предположении, что он существует. Использование метода front() предпочтительнее по стандарту STL.
back() и last() Предоставляют ссылку на последний элемент в предположении, что он существует. Использование метода back() предпочтительнее по стандарту STL.
contains() Проверка контейнера на наличие переданного элемента
erase() Удаляет элемент, на который указывает параметр-итератор
IndexOf() Возвращает индекс первого элемента, который соответствует значению переданного параметра.
pop_front() Удаляет из контейнера первый элемент
pop_back() Удаляет из контейнера последний элемент
replace() Заменяет значение элемент контейнера на значение своего параметра
push_front() и prepend() Добавляют элемент в начало контейнера. Использование метода push_front() предпочтительнее по стандарту STL.
push_back() и append() Добавляют элемент в конец контейнера. Использование метода push_back() предпочтительнее по стандарту STL.

В дополнение к ним важной операцией считается функция resize(), которая позволяет динамически варьировать количество элементов в коллекции за линейное время. Её поддерживают все классы, за исключением массива array, который идеологически не предназначен для изменений своего размера в памяти[11].

Примечания

  1. Josuttis, 2012, Containers, p. 167—168.
  2. Литвиненко, 2005, Стандартная библиотека шаблонов STL, с. 137.
  3. Meyers, 2001, Containers, p. 16.
  4. Josuttis, 2012, Sequence containers, p. 169.
  5. Containers Архивная копия от 14 января 2020 на Wayback Machine www.cplusplus.com
  6. Containers in C++ STL Архивная копия от 12 января 2020 на Wayback Machine www.geeksforgeeks.org
  7. Meyers, 2001, Containers, p. 11.
  8. Josuttis, 2012, Requirements for Container Elements, p. 244.
  9. Posch, Galowicz, 2018, Sequence containers, p. 14.
  10. Шлее, 2015, Последовательные контейнеры, с. 96.
  11. Josuttis, 2012, Containers, p. 176.

Источники

Эта страница в последний раз была отредактирована 7 ноября 2022 в 11:15.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).