Пространства имён
Варианты
Действия

std::vector<bool>

Материал из cppreference.com
< cpp‎ | container
 
 
 
 
Определено в заголовочном файле <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_typebool[править]
allocator_typeAllocator[править]
size_type определяется реализацией [править]
difference_type определяется реализацией[править]
Прокси-класс, представляющий собой ссылку на один bool
(класс)
const_referencebool[править]
pointer определяется реализацией[править]
const_pointer определяется реализацией[править]
iterator

implementation-defined

(до C++20)

implementation-defined ConstexprIterator

(начиная с C++20)
[править]
const_iterator

implementation-defined

(до C++20)

implementation-defined ConstexprIterator

(начиная с C++20)
[править]
reverse_iteratorstd::reverse_iterator<iterator>[править]
const_reverse_iteratorstd::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)[править]
Итераторы
возвращает итератор на начало
(public функция-элемент std::vector)[править]
(C++11)
возвращает итератор на конец
(public функция-элемент std::vector)[править]
возвращает обратный итератор на начало
(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)[править]
Специфические модификаторы vector<bool>
Заменяет значения в векторе на противоположные
(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.

close