std::vector<bool>
From cppreference.com
Defined in header <vector>
|
||
template<class Allocator = std::allocator<bool>> class vector<bool, Allocator>; |
||
std::vector<bool> is a space-efficient specialization of std::vector for the type bool. The efficiency can be potentially achieved by coalescing the elements in such a way, that each of them occupies only one bit, as opposed to at least one byte, which is the size of bool. The actual optimization and whether std::vector<bool> is optimized at all is implementation-defined.
std::vector<bool> behaves similarly to std::vector, but in order to be space efficient, it:
- Does not necessarily store its data in a single contiguous chunk of memory.
- Exposes std::vector<bool>::reference as a method of accessing individual bits.
- Does not use std::allocator_traits::construct to construct bit values.
Contents |
Member types
Member functions
Non-member functions
Notes
If the size of the bitset is known at compile time, std::bitset may be used, which offers a richer set of member functions. In addition, boost::dynamic_bitset exists as an alternative to std::vector<bool>
.