Array-backed list similar to std::vector, but optimized for embedded.
Key features of pw::DynamicVector.
pw::Allocator for memory operations.std::vector API, but adds try_* versions of operations that crash on allocation failure.assign() & try_assign().push_back() & try_push_back()emplace_back() & try_emplace_back()resize() & try_resize().reserve()/try_reserve() and shrink_to_fit() to manage memory usage.constexpr constructible.size_type of uint16_t.pw::Allocator::Resize() when possible to maximize efficiency.pw::DynamicVector is currently implemented as a wrapper around pw::DynamicDeque. Some operations are more expensive than they need to be, and DynamicVector objects are larger than necessary. This overhead will be eliminated in the future (see b/424613355). Public Types | |
| using | value_type = T |
| using | size_type = SizeType |
| using | reference = value_type & |
| using | const_reference = const value_type & |
| using | pointer = value_type * |
| using | const_pointer = const value_type * |
| using | iterator = containers::PtrIterator< DynamicVector > |
| using | const_iterator = containers::ConstPtrIterator< DynamicVector > |
| using | reverse_iterator = std::reverse_iterator< iterator > |
| using | const_reverse_iterator = std::reverse_iterator< const_iterator > |
| using | allocator_type = Allocator |
Public Member Functions | |
| constexpr | DynamicVector (Allocator &allocator) |
| DynamicVector (const DynamicVector &)=delete | |
| DynamicVector & | operator= (const DynamicVector &)=delete |
| constexpr | DynamicVector (DynamicVector &&)=default |
| constexpr DynamicVector & | operator= (DynamicVector &&)=default |
| iterator | begin () |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| iterator | end () |
| const_iterator | end () const |
| const_iterator | cend () const |
| reverse_iterator | rbegin () |
| const_reverse_iterator | rbegin () const |
| const_reverse_iterator | crbegin () const |
| reverse_iterator | rend () |
| const_reverse_iterator | rend () const |
| const_reverse_iterator | crend () const |
| constexpr allocator_type & | get_allocator () const |
| Returns the vector's allocator. | |
| bool | empty () const |
| Checks if the vector is empty. | |
| size_type | size () const |
| Returns the number of elements in the vector. | |
| size_type | capacity () const |
| size_type | max_size () const |
Maximum possible value of size(), ignoring allocator limitations. | |
| void | reserve (size_type new_capacity) |
| void | reserve_exact (size_type new_capacity) |
| bool | try_reserve (size_type new_capacity) |
| bool | try_reserve_exact (size_type new_capacity) |
| void | shrink_to_fit () |
| Reduces memory usage by releasing unused capacity. | |
| reference | operator[] (size_type pos) |
| const_reference | operator[] (size_type pos) const |
| reference | at (size_type pos) |
| const_reference | at (size_type pos) const |
| reference | front () |
| const_reference | front () const |
| reference | back () |
| const_reference | back () const |
| pointer | data () |
| const_pointer | data () const |
| void | assign (size_type count, const value_type &value) |
| bool | try_assign (size_type count, const value_type &value) |
| void | assign (std::initializer_list< T > init) |
| bool | try_assign (std::initializer_list< T > init) |
| void | push_back (const value_type &value) |
| void | push_back (value_type &&value) |
| bool | try_push_back (const value_type &value) |
| bool | try_push_back (value_type &&value) |
| void | pop_back () |
| template<typename... Args> | |
| void | emplace_back (Args &&... args) |
| template<typename... Args> | |
| bool | try_emplace_back (Args &&... args) |
| template<typename... Args> | |
| iterator | emplace (const_iterator pos, Args &&... args) |
| template<typename... Args> | |
| std::optional< iterator > | try_emplace (const_iterator pos, Args &&... args) |
| iterator | insert (const_iterator pos, const T &value) |
| iterator | insert (const_iterator pos, T &&value) |
| iterator | insert (const_iterator pos, size_type count, const T &value) |
| template<typename InputIt > | |
| iterator | insert (const_iterator pos, InputIt first, InputIt last) |
| iterator | insert (const_iterator pos, std::initializer_list< T > ilist) |
| std::optional< iterator > | try_insert (const_iterator pos, const T &value) |
| std::optional< iterator > | try_insert (const_iterator pos, T &&value) |
| std::optional< iterator > | try_insert (const_iterator pos, size_type count, const T &value) |
| template<typename InputIt > | |
| std::optional< iterator > | try_insert (const_iterator pos, InputIt first, InputIt last) |
| std::optional< iterator > | try_insert (const_iterator pos, std::initializer_list< T > ilist) |
| iterator | erase (const_iterator pos) |
| iterator | erase (const_iterator first, const_iterator last) |
| void | resize (size_type count) |
| void | resize (size_type count, const value_type &value) |
| bool | try_resize (size_type count) |
| bool | try_resize (size_type count, const value_type &value) |
| void | clear () |
| Removes all elements from the vector. | |
| void | swap (DynamicVector &other) |