std::vector< bool, _Alloc > Class Template Reference

Inherits std::_Bvector_base< _Alloc >.

## Public Types

typedef _Alloc | allocator_type
typedef _Bit_const_iterator | const_iterator
typedef const bool * | const_pointer
typedef bool | const_reference
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator
typedef ptrdiff_t | difference_type
typedef _Bit_iterator | iterator
typedef _Bit_reference * | pointer
typedef _Bit_reference | reference
typedef std::reverse_iterator< iterator > | reverse_iterator
typedef size_t | size_type
typedef bool | value_type

## Public Member Functions

template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
| vector (_InputIterator __first, _InputIterator __last, const allocator_type &__a=allocator_type())
| vector (const allocator_type &__a)
| vector (const vector &__x)
| vector (const vector &__x, const allocator_type &__a)
| vector (initializer_list< bool > __l, const allocator_type &__a=allocator_type())
| vector (size_type __n, const allocator_type &__a=allocator_type())
| vector (size_type __n, const bool &__value, const allocator_type &__a=allocator_type())
| vector (vector &&)=default
| vector (vector &&__x, const allocator_type &__a) noexcept(_Bit_alloc_traits::_S_always_equal())
template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
void | assign (_InputIterator __first, _InputIterator __last)
void | assign (initializer_list< bool > __l)
void | assign (size_type __n, const bool &__x)
reference | at (size_type __n)
const_reference | at (size_type __n) const
reference | back ()
const_reference | back () const
const_iterator | begin () const noexcept
iterator | begin () noexcept
size_type | capacity () const noexcept
const_iterator | cbegin () const noexcept
const_iterator | cend () const noexcept
void | clear () noexcept
const_reverse_iterator | crbegin () const noexcept
const_reverse_iterator | crend () const noexcept
void | data () noexcept
template<typename... _Args>
iterator | emplace (const_iterator __pos, _Args &&... __args)
template<typename... _Args>
reference | emplace_back (_Args &&... __args)
bool | empty () const noexcept
const_iterator | end () const noexcept
iterator | end () noexcept
iterator | erase (const_iterator __first, const_iterator __last)
iterator | erase (const_iterator __position)
void | flip () noexcept
reference | front ()
const_reference | front () const
allocator_type | get_allocator () const
iterator | insert (const_iterator __p, initializer_list< bool > __l)
template<typename _InputIterator , typename = std::_RequireInputIter<_InputIterator>>
iterator | insert (const_iterator __position, _InputIterator __first, _InputIterator __last)
iterator | insert (const_iterator __position, const bool &__x=bool())
iterator | insert (const_iterator __position, size_type __n, const bool &__x)
size_type | max_size () const noexcept
vector & | operator= (const vector &__x)
vector & | operator= (initializer_list< bool > __l)
vector & | operator= (vector &&__x) noexcept(_Bit_alloc_traits::_S_nothrow_move())
reference | operator[] (size_type __n)
const_reference | operator[] (size_type __n) const
void | pop_back ()
void | push_back (bool __x)
const_reverse_iterator | rbegin () const noexcept
reverse_iterator | rbegin () noexcept
const_reverse_iterator | rend () const noexcept
reverse_iterator | rend () noexcept
void | reserve (size_type __n)
void | resize (size_type __new_size, bool __x=bool())
void | shrink_to_fit ()
size_type | size () const noexcept
void | swap (vector &__x) noexcept

## Static Public Member Functions

static void | swap (reference __x, reference __y) noexcept

## Protected Types

typedef __gnu_cxx::__alloc_traits< _Alloc >::template rebind< _Bit_type >::other | _Bit_alloc_type

## Protected Member Functions

_Bit_pointer | _M_allocate (size_t __n)
template<typename _ForwardIterator >
void | _M_assign_aux (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
template<typename _InputIterator >
void | _M_assign_aux (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
size_type | _M_check_len (size_type __n, const char *__s) const
iterator | _M_copy_aligned (const_iterator __first, const_iterator __last, iterator __result)
void | _M_deallocate ()
iterator | _M_erase (iterator __first, iterator __last)
iterator | _M_erase (iterator __pos)
void | _M_erase_at_end (iterator __pos)
void | _M_fill_assign (size_t __n, bool __x)
void | _M_fill_insert (iterator __position, size_type __n, bool __x)
const _Bit_alloc_type & | _M_get_Bit_allocator () const noexcept
_Bit_alloc_type & | _M_get_Bit_allocator () noexcept
void | _M_initialize (size_type __n)
template<typename _ForwardIterator >
void | _M_initialize_range (_ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
template<typename _InputIterator >
void | _M_initialize_range (_InputIterator __first, _InputIterator __last, std::input_iterator_tag)
void | _M_initialize_value (bool __x)
void | _M_insert_aux (iterator __position, bool __x)
template<typename _InputIterator >
void | _M_insert_range (iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag)
template<typename _ForwardIterator >
void | _M_insert_range (iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
void | _M_move_data (_Bvector_base &&__x) noexcept
void | _M_range_check (size_type __n) const
void | _M_reallocate (size_type __n)
bool | _M_shrink_to_fit ()

## Static Protected Member Functions

static size_t | _S_nword (size_t __n)

## Protected Attributes

_Bvector_impl | _M_impl

## Friends

struct | std::hash< vector >

## Detailed Description

### template<typename _Alloc>
class std::vector< bool, _Alloc >

A specialization of vector for booleans which offers fixed time access to individual elements in any order.

Template Parameters

  _Alloc | Allocator type.

Note that vector<bool> does not actually meet the requirements for being a container. This is because the reference and pointer types are not really references and pointers to bool. See DR96 for details.

See also
  vector for function documentation.

In some terminology a vector can be described as a dynamic C-style array, it offers fast and efficient access to individual elements in any order and saves the user from worrying about memory and size allocation. Subscripting ( ``[] ) access is also provided as with C-style arrays.

Definition at line 596 of file stl_bvector.h.

The documentation for this class was generated from the following files:

- stl_bvector.h
- vector.tcc