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 > 
typedef ptrdiff_t difference_type
typedef _Bit_iterator iterator
typedef _Bit_reference * pointer
typedef _Bit_reference reference
typedef std::reverse_iterator
< iterator > 
typedef size_t size_type
typedef bool value_type

Public Member Functions

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

Static Public Member Functions

static void swap (reference __x, reference __y)

Protected Types

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

Protected Member Functions

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

Protected Attributes

_Bvector_impl _M_impl


template<typename >
class hash

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

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