std::inplace_vector
From cppreference.com
Defined in header <inplace_vector>
|
||
template< class T, |
(since C++26) | |
inplace_vector
is a dynamically-resizable array with contiguous inplace storage (that is, the elements of type T
are stored within the object itself) and with fixed at compile-time capacity N
.
inplace_vector
is useful in environments where dynamic memory allocations are undesired.
This section is incomplete |
Contents |
Iterator invalidation
This section is incomplete |
Template parameters
T | - | element type. Must be MoveConstructible and MoveAssignable. |
N | - | capacity, i.e. the maximum number of elements in the inplace_vector (might be 0).
|
This section is incomplete Reason: Complete the descriptions of template parameters. |
Member types
Member type | Definition |
value_type
|
T
|
size_type
|
std::size_t |
difference_type
|
std::ptrdiff_t |
reference
|
value_type& |
const_reference
|
const value_type& |
pointer
|
value_type* |
const_pointer
|
const value_type* |
iterator
|
implementation-defined LegacyRandomAccessIterator and random_access_iterator to value_type
|
const_iterator
|
implementation-defined LegacyRandomAccessIterator and random_access_iterator to const value_type
|
reverse_iterator
|
std::reverse_iterator<iterator> |
const_reverse_iterator
|
std::reverse_iterator<const_iterator> |
Member functions
constructs the inplace_vector (public member function) | |
destructs the inplace_vector (public member function) | |
assigns values to the container (public member function) | |
assigns values to the container (public member function) | |
assigns a range of values to the container (public member function) | |
Element access | |
access specified element with bounds checking (public member function) | |
access specified element (public member function) | |
access the first element (public member function) | |
access the last element (public member function) | |
direct access to the underlying contiguous storage (public member function) | |
Iterators | |
returns an iterator to the beginning (public member function) | |
returns an iterator to the end (public member function) | |
returns a reverse iterator to the beginning (public member function) | |
returns a reverse iterator to the end (public member function) | |
Size and capacity | |
checks whether the container is empty (public member function) | |
returns the number of elements (public member function) | |
[static] |
returns the maximum possible number of elements (public static member function) |
[static] |
returns the number of elements that can be held in currently allocated storage (public static member function) |
changes the number of elements stored (public member function) | |
[static] |
reserves storage (public static member function) |
[static] |
reduces memory usage by freeing unused memory (public static member function) |
Modifiers | |
inserts elements (public member function) | |
inserts a range of elements (public member function) | |
constructs element in-place (public member function) | |
constructs an element in-place at the end (public member function) | |
tries to construct an element in-place at the end (public member function) | |
unconditionally constructs an element in-place at the end (public member function) | |
adds an element to the end (public member function) | |
tries to add an element to the end (public member function) | |
unconditionally adds an element to the end (public member function) | |
removes the last element (public member function) | |
adds a range of elements to the end (public member function) | |
tries to add a range of elements to the end (public member function) | |
changes the number of elements stored (public member function) | |
clears the contents (public member function) | |
erases elements (public member function) | |
swaps the contents (public member function) |
Non-member functions
specializes the std::swap algorithm (function template) | |
erases all elements satisfying specific criteria (function template) | |
(C++26) |
lexicographically compares the values of two inplace_vector s (function template) |
Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_inplace_vector |
202406L | (C++26) | std::inplace_vector : dynamically-resizable vector with fixed capacity inplace storage
|
Example
This section is incomplete Reason: no example |
See also
dynamic contiguous array (class template) | |
(C++11) |
fixed-sized inplace contiguous array (class template) |
double-ended queue (class template) |
External links
Boost.Container: static_vector implements inplace vector as a standalone type with its own guarantees.
| |
EASTL: fixed_vector implements inplace vector via an extra template parameter.
| |
Folly: small_vector also implements inplace vector via an extra template parameter.
| |
Compiler Explorer — A reference implementation of P0843R14 (std::inplace_vector ).
| |