xentara-utils v2.0.3
The Xentara Utility Library
|
A vector that has a fixed capacity. More...
#include <xentara/utils/core/FixedVector.hpp>
Public Types | |
using | value_type = Element |
The element type. | |
using | allocator_type = Allocator |
The Allocator type. | |
using | size_type = typename std::allocator_traits< Allocator >::size_type |
The type used for sizes. | |
using | difference_type = typename std::allocator_traits< Allocator >::difference_type |
The type used for distances. | |
using | reference = value_type & |
A reference to an element. | |
using | const_reference = const value_type & |
A const reference to an element. | |
using | pointer = typename std::allocator_traits< Allocator >::pointer |
A pointer to an element. | |
using | const_pointer = typename std::allocator_traits< Allocator >::const_pointer |
A const pointer to an element. | |
using | iterator = ContiguousIterator< pointer, FixedVector > |
An iterator. | |
using | const_iterator = ContiguousIterator< const_pointer, FixedVector > |
A const iterator. | |
using | reverse_iterator = std::reverse_iterator< iterator > |
An iterator for iterating in reverse order. | |
using | const_reverse_iterator = std::reverse_iterator< const_iterator > |
A const iterator for iterating in reverse order. | |
Public Member Functions | |
internal internal constexpr auto | operator= (std::initializer_list< Element > values) -> FixedVector & |
Assignment operator for an initializer list. | |
constexpr auto | assign (size_type size, const Element &value) -> void |
Fills the vector with a certain value. | |
template<std::input_iterator InputIterator> | |
constexpr auto | assign (InputIterator first, InputIterator last) -> void |
Copies a range of elements. | |
constexpr auto | assign (std::initializer_list< Element > values) -> void |
Constructor that initializes the elements using an initializer list. | |
constexpr auto | get_allocator () const noexcept -> allocator_type |
Returns a copy of the allocator. | |
constexpr auto | operator== (const FixedVector &rhs) const noexcept -> bool |
Equality operator. | |
constexpr auto | operator<=> (const FixedVector &rhs) const noexcept -> std::compare_three_way_result_t< value_type > |
Three-Way-Comparison operator. | |
Constructors | |
constexpr | FixedVector () noexcept(noexcept(Allocator()))=default |
Default constructor. | |
constexpr | FixedVector (const Allocator &allocator) noexcept |
Constructor that sets the allocator. | |
constexpr | FixedVector (Capacity< size_type > capacity) |
Constructor for a vector that can hold a specific number of elements. | |
constexpr | FixedVector (Capacity< size_type > capacity, const Allocator &allocator) |
Constructor for a vector that can hold a specific number of elements. | |
constexpr | FixedVector (size_type size, const Allocator &allocator=Allocator()) |
Constructor that creates a vector of a certain size. | |
constexpr | FixedVector (size_type size, const Element &value, const Allocator &allocator=Allocator()) |
Constructor that fills the vector with a certain value. | |
template<std::input_iterator InputIterator> | |
constexpr | FixedVector (InputIterator first, InputIterator last, const Allocator &allocator=Allocator()) |
Constructor that copies a range of elements. | |
constexpr | FixedVector (const FixedVector &other, const Allocator &allocator) |
Constructor that copies the data but not the allocator. | |
constexpr | FixedVector (FixedVector &&other, const Allocator &allocator) |
Constructor that moves the data but not the allocator. | |
constexpr | FixedVector (std::initializer_list< Element > values, const Allocator &allocator=Allocator()) |
Constructor that initializes the elements using an initializer list. | |
Element Access | |
constexpr auto | at (size_type index) const -> const_reference |
Accesses the element at a certain index. | |
constexpr auto | at (size_type index) -> reference |
Accesses the element at a certain index. | |
constexpr auto | operator[] (size_type index) const noexcept -> const_reference |
Subscript operator. | |
constexpr auto | operator[] (size_type index) noexcept -> reference |
Subscript operator. | |
constexpr auto | front () const noexcept -> const_reference |
Returns the first element. | |
constexpr auto | front () noexcept -> reference |
Returns the first element. | |
constexpr auto | back () const noexcept -> const_reference |
Returns the last element. | |
constexpr auto | back () noexcept -> reference |
Returns the last element. | |
constexpr auto | data () const noexcept -> const value_type * |
Raw access to the data. | |
constexpr auto | data () noexcept -> value_type * |
Raw access to the data. | |
Iterators | |
constexpr auto | begin () noexcept -> iterator |
Creates a begin iterator. | |
constexpr auto | begin () const noexcept -> const_iterator |
Creates a begin iterator. | |
constexpr auto | cbegin () const noexcept -> const_iterator |
Creates a begin iterator. | |
constexpr auto | end () noexcept -> iterator |
Creates an end iterator. | |
constexpr auto | end () const noexcept -> const_iterator |
Creates an end iterator. | |
constexpr auto | cend () const noexcept -> const_iterator |
Creates an end iterator. | |
constexpr auto | rbegin () noexcept -> reverse_iterator |
Creates a reverse begin iterator. | |
constexpr auto | rbegin () const noexcept -> const_reverse_iterator |
Creates a reverse begin iterator. | |
constexpr auto | crbegin () const noexcept -> const_reverse_iterator |
Creates a reverse begin iterator. | |
constexpr auto | rend () noexcept -> reverse_iterator |
Creates a reverse end iterator. | |
constexpr auto | rend () const noexcept -> const_reverse_iterator |
Creates a reverse end iterator. | |
constexpr auto | crend () const noexcept -> const_reverse_iterator |
Creates a reverse end iterator. | |
Capacity | |
constexpr auto | empty () const noexcept -> bool |
Determines whether the data is empty. | |
constexpr auto | size () const noexcept -> size_type |
Gets the size of the data. | |
constexpr auto | max_size () const noexcept -> size_type |
Gets the maximum possible data size. | |
constexpr auto | capacity () const noexcept -> size_type |
Gets the capacity of the data. | |
constexpr auto | reset (size_type capacity) noexcept |
Detsroys all existing elements and changes the capacity. | |
Modifiers | |
constexpr auto | clear () noexcept -> void |
Erases all elements. | |
constexpr auto | insert (const_iterator where, const Element &value) -> iterator |
Inserts an element at a certain position. | |
constexpr auto | insert (const_iterator where, Element &&value) -> iterator |
Move-Inserts an element at a certain position. | |
constexpr auto | insert (const_iterator where, size_type count, const Element &value) -> iterator |
Inserts a number of copies of a element at a certain position. | |
template<std::input_iterator InputIterator> | |
constexpr auto | insert (const_iterator where, InputIterator first, InputIterator last) -> iterator |
Inserts a range of values at a certain position. | |
constexpr auto | insert (const_iterator where, std::initializer_list< Element > values) -> iterator |
Inserts a list of values at a certain position. | |
template<typename... Arguments> | |
constexpr auto | emplace (const_iterator where, Arguments &&... arguments) -> iterator |
Creates an element at a certain position. | |
constexpr auto | erase (const_iterator position) -> iterator |
Removes an element from the vector. | |
constexpr auto | erase (const_iterator first, const_iterator last) -> iterator |
Removes a range of elements from the vector. | |
constexpr auto | push_back (const Element &value) -> void |
Appends an element to the back of the vector. | |
constexpr auto | push_back (Element &&value) -> void |
Move-Appends an element to the back of the vector. | |
template<typename... Arguments> | |
constexpr auto | emplace_back (Arguments &&... arguments) -> reference |
Appends a newly created element to the back of the vector. | |
constexpr auto | pop_back () -> void |
Removes the last element. | |
constexpr auto | resize (size_type newSize) -> void |
Resizes the vector. | |
constexpr auto | resize (size_type newSize, const value_type &fillValue) -> void |
Resizes the vector. | |
constexpr auto | swap (FixedVector &other) noexcept -> void |
Swaps the contents of this vector with another vector. | |
A vector that has a fixed capacity.
This class behaves exactly like std::vector, but has a fixed capacity that must be specified in the constructor. Contary to std::vector, this class can be used with non-movable types, as long as all elements are default inserted or emplaced at the back.
Element | The type for the elements |
Allocator | The type for the allocator |
using xentara::utils::core::FixedVector< Element, Allocator >::allocator_type = Allocator |
The Allocator type.
using xentara::utils::core::FixedVector< Element, Allocator >::const_iterator = ContiguousIterator<const_pointer, FixedVector> |
A const iterator.
using xentara::utils::core::FixedVector< Element, Allocator >::const_pointer = typename std::allocator_traits<Allocator>::const_pointer |
A const pointer to an element.
using xentara::utils::core::FixedVector< Element, Allocator >::const_reference = const value_type & |
A const reference to an element.
using xentara::utils::core::FixedVector< Element, Allocator >::const_reverse_iterator = std::reverse_iterator<const_iterator> |
A const iterator for iterating in reverse order.
using xentara::utils::core::FixedVector< Element, Allocator >::difference_type = typename std::allocator_traits<Allocator>::difference_type |
The type used for distances.
using xentara::utils::core::FixedVector< Element, Allocator >::iterator = ContiguousIterator<pointer, FixedVector> |
An iterator.
using xentara::utils::core::FixedVector< Element, Allocator >::pointer = typename std::allocator_traits<Allocator>::pointer |
A pointer to an element.
using xentara::utils::core::FixedVector< Element, Allocator >::reference = value_type & |
A reference to an element.
using xentara::utils::core::FixedVector< Element, Allocator >::reverse_iterator = std::reverse_iterator<iterator> |
An iterator for iterating in reverse order.
using xentara::utils::core::FixedVector< Element, Allocator >::size_type = typename std::allocator_traits<Allocator>::size_type |
The type used for sizes.
using xentara::utils::core::FixedVector< Element, Allocator >::value_type = Element |
The element type.
|
constexprdefaultnoexcept |
Default constructor.
Constructs an empty vector with a default constructed allocator.
A vector created with this constructor has a capacity of 0 and cannot hold any elements. You must make room for the elements using reset() before inserting any elements.
You can also insert elements using assign() or the assignment operator.
|
explicitconstexprnoexcept |
Constructor that sets the allocator.
allocator | The allocator |
A vector created with this constructor has a capacity of 0 and cannot hold any elements. You must make room for the elements using reset() before inserting any elements.
You can also insert elements using assign() or the assignment operator.
|
explicitconstexpr |
Constructor for a vector that can hold a specific number of elements.
Creates a vector of the given size and fills it with default-inserted values.
capacity | The number of entries to create room for |
|
explicitconstexpr |
Constructor for a vector that can hold a specific number of elements.
Creates a vector of the given size and fills it with default-inserted values.
capacity | The number of entries to create room for |
allocator | The allocator |
|
explicitconstexpr |
Constructor that creates a vector of a certain size.
Creates a vector of the given size and fills it with default-inserted values.
size | The number of entries to create room for |
allocator | The allocator |
|
constexpr |
Constructor that fills the vector with a certain value.
Creates a vector of the given size and fills it with the given value.
size | The number of entries to create |
value | The value to set the entries to |
allocator | The allocator |
|
constexpr |
Constructor that copies a range of elements.
Creates a vector that holds copies of the given input range.
first | The first element to copy |
last | The position after the last element to copy |
allocator | The allocator |
|
constexpr |
Constructor that copies the data but not the allocator.
Copies the data of another vector, but uses a different allocator
other | The vector to copy |
allocator | The allocator |
|
constexpr |
Constructor that moves the data but not the allocator.
Moves the data from another vector, but uses a different allocator
other | The vector to move |
allocator | The allocator |
|
constexpr |
Constructor that initializes the elements using an initializer list.
values | The values to initialize the elements to |
allocator | The allocator |
|
constexpr |
Copies a range of elements.
Replaces the contents of the vector with a given input range.
first | The first element to copy |
last | The position after the last element to copy |
|
constexpr |
Fills the vector with a certain value.
Resizes the vector to the given size and fills it with the given value.
size | The number of entries to create |
value | The value to set the entries to |
|
constexpr |
Constructor that initializes the elements using an initializer list.
Replaces the contents of the vector with the contents of an initializer list.
values | The initializer list |
|
constexpr |
Accesses the element at a certain index.
index | The index |
std::out_of_range | index is out of range |
|
constexpr |
Accesses the element at a certain index.
index | The index |
std::out_of_range | index is out of range |
|
constexprnoexcept |
Returns the last element.
|
constexprnoexcept |
Returns the last element.
|
constexprnoexcept |
Creates a begin iterator.
|
constexprnoexcept |
Creates a begin iterator.
|
constexprnoexcept |
Gets the capacity of the data.
|
constexprnoexcept |
Creates a begin iterator.
|
constexprnoexcept |
Creates an end iterator.
|
constexprnoexcept |
Erases all elements.
|
constexprnoexcept |
Creates a reverse begin iterator.
|
constexprnoexcept |
Creates a reverse end iterator.
|
constexprnoexcept |
Raw access to the data.
Returns a pointer to the underlying array that serves as element storage.
|
constexprnoexcept |
Raw access to the data.
Returns a pointer to the underlying array that serves as element storage.
|
constexpr |
Creates an element at a certain position.
where | The desired position of the new element. Must be a position within the vector, or cend() to append the element. |
arguments | The arguments to pass to the element's constructor |
|
constexpr |
Appends a newly created element to the back of the vector.
arguments | The arguments to pass to the element's constructor |
|
constexprnoexcept |
Determines whether the data is empty.
|
constexprnoexcept |
Creates an end iterator.
|
constexprnoexcept |
Creates an end iterator.
|
constexpr |
Removes a range of elements from the vector.
first | An iterator to the first element to remove |
last | An iterator one position past the last element to remove |
|
constexpr |
Removes an element from the vector.
position | The position of the element to remove. Must point to a valid element. |
|
constexprnoexcept |
Returns the first element.
|
constexprnoexcept |
Returns the first element.
|
constexprnoexcept |
Returns a copy of the allocator.
|
constexpr |
Inserts an element at a certain position.
where | The desired position of the new element. Must be a position within the vector, or cend() to append the element. |
value | The value to insert |
|
constexpr |
Move-Inserts an element at a certain position.
where | The desired position of the new element. Must be a position within the vector, or cend() to append the element. |
value | The value to move |
|
constexpr |
Inserts a range of values at a certain position.
where | The desired position of the first new element. Must be a position within the vector, or cend() to append the elements. |
first | An iterator to the first value to insert |
last | An iterator one position past the last value to insert |
|
constexpr |
Inserts a number of copies of a element at a certain position.
where | The desired position of the first new element. Must be a position within the vector, or cend() to append the elements. |
count | The number of copies to insert |
value | The value to insert |
|
constexpr |
Inserts a list of values at a certain position.
where | The desired position of the first new element. Must be a position within the vector, or cend() to append the elements. |
values | The values to insert |
|
constexprnoexcept |
Gets the maximum possible data size.
|
constexprnoexcept |
Three-Way-Comparison operator.
Performs a lexicographical comparison of the elements of two vectors
|
constexpr |
Assignment operator for an initializer list.
values | The values to assign |
|
constexprnoexcept |
Equality operator.
Tests the contents of two vectors for equality
|
constexprnoexcept |
Subscript operator.
Returns a reference to the element at a certain index
index | The index |
|
constexprnoexcept |
Subscript operator.
Returns a reference to the element at a certain index
index | The index |
|
constexpr |
Removes the last element.
|
constexpr |
Appends an element to the back of the vector.
value | The value to insert |
|
constexpr |
Move-Appends an element to the back of the vector.
value | The value to move |
|
constexprnoexcept |
Creates a reverse begin iterator.
|
constexprnoexcept |
Creates a reverse begin iterator.
|
constexprnoexcept |
Creates a reverse end iterator.
|
constexprnoexcept |
Creates a reverse end iterator.
|
constexprnoexcept |
Detsroys all existing elements and changes the capacity.
capacity | The total number of elements the object can hold |
|
constexpr |
Resizes the vector.
Grows or shrinks the vector to a new size. If the new size is greater than the old size, the new elements are default-inserted.
newSize | The new size for the vector. |
|
constexpr |
Resizes the vector.
Grows or shrinks the vector to a new size. If the new size is greater than the old size, the new elements are filled with copies of fillValue.
newSize | The new size for the vector. |
fillValue | The value that should be used to initialize new element. |
|
constexprnoexcept |
Gets the size of the data.
|
constexprnoexcept |
Swaps the contents of this vector with another vector.
other | The vector to swap with |