Quick Links:

bal | bbl | bdl | bsl

Classes | Public Types | Public Member Functions | Public Attributes | Protected Attributes

bsl::vector< VALUE_TYPE, ALLOCATOR > Class Template Reference
[Component bslstl_vector]

#include <bslstl_vector.h>

Inheritance diagram for bsl::vector< VALUE_TYPE, ALLOCATOR >:
bsl::vectorBase< VALUE_TYPE >

List of all members.

Classes

class  Proctor

Public Types

typedef VALUE_TYPE value_type
typedef ALLOCATOR allocator_type
typedef VALUE_TYPE & reference
typedef const VALUE_TYPE & const_reference
typedef AllocatorTraits::size_type size_type
typedef
AllocatorTraits::difference_type 
difference_type
typedef AllocatorTraits::pointer pointer
typedef
AllocatorTraits::const_pointer 
const_pointer
typedef VALUE_TYPE * iterator
typedef VALUE_TYPE const * const_iterator
typedef bsl::reverse_iterator
< iterator
reverse_iterator
typedef bsl::reverse_iterator
< const_iterator
const_reverse_iterator

Public Member Functions

 vector () BSLS_KEYWORD_NOEXCEPT
 vector (const ALLOCATOR &basicAllocator) BSLS_KEYWORD_NOEXCEPT
 vector (size_type initialSize, const ALLOCATOR &basicAllocator=ALLOCATOR())
 vector (size_type initialSize, const VALUE_TYPE &value, const ALLOCATOR &basicAllocator=ALLOCATOR())
template<class INPUT_ITER >
 vector (INPUT_ITER first, INPUT_ITER last, const ALLOCATOR &basicAllocator=ALLOCATOR())
 vector (const vector &original)
 vector (BloombergLP::bslmf::MovableRef< vector > original) BSLS_KEYWORD_NOEXCEPT
 vector (const vector &original, const typename type_identity< ALLOCATOR >::type &basicAllocator)
 vector (BloombergLP::bslmf::MovableRef< vector > original, const typename type_identity< ALLOCATOR >::type &basicAllocator)
 vector (std::initializer_list< VALUE_TYPE > values, const ALLOCATOR &basicAllocator=ALLOCATOR())
 ~vector ()
vectoroperator= (const vector &rhs)
vector &operator=( operator= (std::initializer_list< VALUE_TYPE > values) BloombergLP::bslmf::MovableRef< vector< VALUE_TYPE, ALLOCATOR > > rhs) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(AllocatorTraits vector &
void assign (std::initializer_list< VALUE_TYPE > values)
template<class INPUT_ITER >
void assign (INPUT_ITER first, INPUT_ITER last)
void assign (size_type numElements, const VALUE_TYPE &value)
void resize (size_type newSize)
void resize (size_type newSize, const VALUE_TYPE &value)
void reserve (size_type newCapacity)
void shrink_to_fit ()
template<class... Args>
VALUE_TYPE & emplace_back (Args &&...arguments)
void push_back (const VALUE_TYPE &value)
void push_back (BloombergLP::bslmf::MovableRef< VALUE_TYPE > value)
void pop_back ()
template<class... Args>
iterator emplace (const_iterator position, Args &&...arguments)
iterator insert (const_iterator position, const VALUE_TYPE &value)
iterator insert (const_iterator position, BloombergLP::bslmf::MovableRef< VALUE_TYPE > value)
iterator insert (const_iterator position, size_type numElements, const VALUE_TYPE &value)
template<class INPUT_ITER >
iterator insert (const_iterator position, INPUT_ITER first, INPUT_ITER last)
iterator insert (const_iterator position, std::initializer_list< VALUE_TYPE > values)
iterator erase (const_iterator position)
iterator erase (const_iterator first, const_iterator last)
allocator_type get_allocator () const BSLS_KEYWORD_NOEXCEPT
size_type max_size () const BSLS_KEYWORD_NOEXCEPT
void adopt (BloombergLP::bslmf::MovableRef< vectorBase > base)
iterator begin () BSLS_KEYWORD_NOEXCEPT
const_iterator begin () const BSLS_KEYWORD_NOEXCEPT
iterator end () BSLS_KEYWORD_NOEXCEPT
const_iterator end () const BSLS_KEYWORD_NOEXCEPT
reverse_iterator rbegin () BSLS_KEYWORD_NOEXCEPT
const_reverse_iterator rbegin () const BSLS_KEYWORD_NOEXCEPT
reverse_iterator rend () BSLS_KEYWORD_NOEXCEPT
const_reverse_iterator rend () const BSLS_KEYWORD_NOEXCEPT
reference operator[] (size_type position)
const_reference operator[] (size_type position) const
reference at (size_type position)
const_reference at (size_type position) const
reference front ()
const_reference front () const
reference back ()
const_reference back () const
VALUE_TYPE * data () BSLS_KEYWORD_NOEXCEPT
const VALUE_TYPE * data () const BSLS_KEYWORD_NOEXCEPT
const_iterator cbegin () const BSLS_KEYWORD_NOEXCEPT
const_iterator cend () const BSLS_KEYWORD_NOEXCEPT
const_reverse_iterator crbegin () const BSLS_KEYWORD_NOEXCEPT
const_reverse_iterator crend () const BSLS_KEYWORD_NOEXCEPT
size_type size () const BSLS_KEYWORD_NOEXCEPT
size_type capacity () const BSLS_KEYWORD_NOEXCEPT
bool empty () const BSLS_KEYWORD_NOEXCEPT

Public Attributes

void swap(vector &other)
BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(AllocatorTraits
void 
clear () BSLS_KEYWORD_NOEXCEPT

Protected Attributes

VALUE_TYPE * d_dataBegin_p
VALUE_TYPE * d_dataEnd_p
std::size_t d_capacity

Detailed Description

template<class VALUE_TYPE, class ALLOCATOR = allocator<VALUE_TYPE>>
class bsl::vector< VALUE_TYPE, ALLOCATOR >

This class template provides an STL-compliant vector that conforms to the bslma::Allocator model. For the requirements of a vector class, consult the C++11 standard. In particular, this implementation offers the general rules that:

  1. A call to any method that would result in a vector having a size or capacity greater than the value returned by max_size triggers a call to bslstl::StdExceptUtil::throwLengthError.
  2. A call to an at method that attempts to access a position outside of the valid range of a vector triggers a call to bslstl::StdExceptUtil::throwOutOfRange.

Note that portions of the standard methods are implemented in vectorBase, which is parameterized on only VALUE_TYPE in order to generate smaller debug strings.

This class:

For terminology see bsldoc_glossary.

In addition, the following members offer a full guarantee of rollback: if an exception is thrown during the invocation of push_back or insert with a single element at the end of a pre-existing object, the object is left in a valid state and its value is unchanged.

See Component bslstl_vector


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