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.