Quick Links: |
#include <bslstl_vector.h>
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 () | |
vector & | operator= (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 |
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:
max_size
triggers a call to bslstl::StdExceptUtil::throwLengthError
. 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:
supports a complete set of value-semantic operations
BDEX
serialization const
thread-safe 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.