std::vector<bool>
Определено в заголовочном файле <vector> | ||
template<class Allocator =std::allocator<bool>> class vector<bool, Allocator>; | ||
std::vector<bool> — компактный специализированный std::vector типа bool.
Способ, которым std::vector<bool> сделан компактным, определяется реализацией. Одной из потенциальных оптимизаций является сливание векторных элементов таким образом, что каждый элемент занимает один бит, а не байт, как обычный элемент типа bool.
std::vector<bool> ведет себя аналогично std::vector, но для того, чтобы быть компактным, он:
- Не обязательно хранит свои данные в одном непрерывном куске памяти.
- Предоставляет std::vector<bool>::reference как метод доступа к отдельным битам.
- Не использует std::allocator_traits::construct чтобы построить битовые значения.
Содержание |
[править]Типы-члены
Тип-член | Определение | ||||
value_type | bool | ||||
allocator_type | Allocator | ||||
size_type | определяется реализацией | ||||
difference_type | определяется реализацией | ||||
Прокси-класс, представляющий собой ссылку на один bool (класс) | |||||
const_reference | bool | ||||
pointer | определяется реализацией | ||||
const_pointer | определяется реализацией | ||||
iterator |
| ||||
const_iterator |
| ||||
reverse_iterator | std::reverse_iterator<iterator> | ||||
const_reverse_iterator | std::reverse_iterator<const_iterator> |
[править]Функции-члены
создаёт vector (public функция-элемент std::vector ) | |
уничтожает vector (public функция-элемент std::vector ) | |
присваивает значения контейнеру (public функция-элемент std::vector ) | |
присваивает значения контейнеру (public функция-элемент std::vector ) | |
возвращает связанный аллокатор (public функция-элемент std::vector ) | |
Доступ к элементам | |
предоставляет доступ к указанному элементу с проверкой границ (public функция-элемент std::vector ) | |
предоставляет доступ к указанному элементу (public функция-элемент std::vector ) | |
предоставляет доступ к первому элементу (public функция-элемент std::vector ) | |
предоставляет доступ к последнему элементу (public функция-элемент std::vector ) | |
Итераторы | |
(C++11) | возвращает итератор на начало (public функция-элемент std::vector ) |
(C++11) | возвращает итератор на конец (public функция-элемент std::vector ) |
(C++11) | возвращает обратный итератор на начало (public функция-элемент std::vector ) |
(C++11) | возвращает обратный итератор на конец (public функция-элемент std::vector ) |
Объём | |
проверяет, пуст ли контейнер (public функция-элемент std::vector ) | |
возвращает количество элементов (public функция-элемент std::vector ) | |
возвращает максимально возможное количество элементов (public функция-элемент std::vector ) | |
резервирует память (public функция-элемент std::vector ) | |
возвращает количество элементов, которые могут храниться в выделенной в данный момент памяти (public функция-элемент std::vector ) | |
Модификаторы | |
очищает содержимое (public функция-элемент std::vector ) | |
вставляет элементы (public функция-элемент std::vector ) | |
удаляет элементы (public функция-элемент std::vector ) | |
добавляет элемент в конец (public функция-элемент std::vector ) | |
удаляет последний элемент (public функция-элемент std::vector ) | |
изменяет количество хранимых элементов (public функция-элемент std::vector ) | |
обменивает содержимое (public функция-элемент std::vector ) | |
Специфические модификаторы | |
Заменяет значения в векторе на противоположные (public функция-элемент) | |
[static] | Меняет местами два std::vector<bool>::reference (public static функция-элемент) |
[править]Функции не члены
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20) | лексикографически сравнивает значения в vector (шаблон функции) |
специализация алгоритма std::swap (шаблон функции) |
[править]Примечания
Если размер BitSet известен во время компиляции, может быть использован std::bitset, который предлагает богатый набор функций-членов. Кроме того, как альтернатива std::vector<bool>
, существует boost::dynamic_bitset.