# std::vector< bool, _Alloc > Class Template Reference
[Containers, Sequences]

Inheritance diagram for std::vector< bool, _Alloc >:

List of all members.

## 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.

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 478 of file stl_bvector.h.

## 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> void assign (_InputIterator __first, _InputIterator __last)
- void assign (size_type __n, const bool &__x)
- const_reference at (size_type __n) const
- reference at (size_type __n)
- const_reference back () const
- reference back ()
- const_iterator begin () const
- iterator begin ()
- size_type capacity () const
- void clear ()
- void data ()
- bool empty () const
- const_iterator end () const
- iterator end ()
- iterator erase (iterator __first, iterator __last)
- iterator erase (iterator __position)
- void flip ()
- const_reference front () const
- reference front ()
- allocator_type get_allocator () const
- void insert (iterator __position, size_type __n, const bool &__x)
- template<typename _InputIterator> void insert (iterator __position, _InputIterator __first, _InputIterator __last)
- iterator insert (iterator __position, const bool &__x=bool())
- size_type max_size () const
- vector & operator= (const vector &__x)
- const_reference operator[] (size_type __n) const
- reference operator[] (size_type __n)
- void pop_back ()
- void push_back (bool __x)
- const_reverse_iterator rbegin () const
- reverse_iterator rbegin ()
- const_reverse_iterator rend () const
- reverse_iterator rend ()
- void reserve (size_type __n)
- void resize (size_type __new_size, bool __x=bool())
- size_type size () const
- void swap (vector &__x)
- template<typename _InputIterator> vector (_InputIterator __first, _InputIterator __last, const allocator_type &__a=allocator_type())
- vector (const vector &__x)
- vector (size_type __n, const bool &__value=bool(), const allocator_type &__a=allocator_type())
- vector (const allocator_type &__a)
- vector ()
- ~vector ()

## Static Public Member Functions

- static void swap (reference __x, reference __y)

## Protected Types

- typedef _Alloc::template rebind<
  _Bit_type >::other _Bit_alloc_type

## Protected Member Functions

- _Bit_type * _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)
- template<class _InputIterator> void _M_assign_dispatch (_InputIterator __first, _InputIterator __last, __false_type)
- template<typename _Integer> void _M_assign_dispatch (_Integer __n, _Integer __val, __true_type)
- 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 ()
- 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
- _Bit_alloc_type & _M_get_Bit_allocator ()
- void _M_initialize (size_type __n)
- template<typename _InputIterator> void _M_initialize_dispatch (_InputIterator __first, _InputIterator __last, __false_type)
- template<typename _Integer> void _M_initialize_dispatch (_Integer __n, _Integer __x, __true_type)
- 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_insert_aux (iterator __position, bool __x)
- template<typename _InputIterator> void _M_insert_dispatch (iterator __pos, _InputIterator __first, _InputIterator __last, __false_type)
- template<typename _Integer> void _M_insert_dispatch (iterator __pos, _Integer __n, _Integer __x, __true_type)
- template<typename _ForwardIterator> void _M_insert_range (iterator __position, _ForwardIterator __first, _ForwardIterator __last, std::forward_iterator_tag)
- template<typename _InputIterator> void _M_insert_range (iterator __pos, _InputIterator __first, _InputIterator __last, std::input_iterator_tag)
- void _M_range_check (size_type __n) const

## Protected Attributes

- _Bvector_impl _M_impl

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

- stl_bvector.h
- vector.tcc