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.