Concurrent growth

Concurrent growth#

All member functions in this section can be performed concurrently with each other, element access methods and while traversing the container.

grow_by#

iterator grow_by( size_type delta );

Appends a sequence comprising delta new default-constructed in-place elements to the end of the vector.

Returns: iterator to the beginning of the appended sequence.

Requirements: the type value_type must meet the DefaultConstructible and EmplaceConstructible requirements from [defaultconstructible] and [container.requirements] ISO C++ sections.


iterator grow_by( size_type delta, const value_type& value );

Appends a sequence comprising delta copies of value to the end of the vector.

Returns: iterator to the beginning of the appended sequence.

Requirements: the type value_type must meet the CopyInsertable requirements from the [container.requirements] ISO C++ Standard section.


template <typename InputIterator>
iterator grow_by( InputIterator first, InputIterator last );

Appends a sequence comprising all elements from the half-open interval [first, last) to the end of the vector.

Returns: iterator to the beginning of the appended sequence.

This overload participates in overload resolution only if the type InputIterator meets the requirements of InputIterator from the [input.iterators] ISO C++ Standard section.


iterator grow_by( std::initializer_list<value_type> init );

Equivalent to grow_by(init.begin(), init.end()).

grow_to_at_least#

iterator grow_to_at_least( size_type n );

Appends minimal sequence of default constructed in-place elements such that size() >= n.

Returns: iterator to the beginning of the appended sequence.

Requirements: the type value_type must meet the DefaultConstructible and EmplaceConstructible requirements from [defaultconstructible] and [container.requirements] ISO C++ sections.


iterator grow_to_at_least( size_type n, const value_type& value );

Appends minimal sequence of comprising copies of value such that size() >= n.

Returns: iterator to the beginning of the appended sequence.

Requirements: the type value_type must meet the CopyInsertable requirements from the [container.requirements] ISO C++ Standard section.

push_back#

iterator push_back( const value_type& value );

Appends a copy of value to the end of the vector.

Returns: iterator to the appended element.

Requirements: the type value_type must meet the CopyInsertable requirements from the [container.requirements] ISO C++ Standard section.


iterator push_back( value_type&& value );

Appends value to the end of the vector using move semantics.

value is left in a valid, but unspecified state.

Returns: iterator to the appended element.

Requirements: the type value_type must meet the MoveInsertable requirements from the [container.requirements] ISO C++ Standard section.

emplace_back#

template <typename... Args>
iterator emplace_back( Args&&... args );

Appends an element constructed in-place from args to the end of the vector.

Returns: iterator to the appended element.

Requirements: the type value_type must meet the EmplaceConstructible requirements from the [container.requirements] ISO C++ section.