An extension of the core::array class which attempts to keep all data sorted. More...
#include <sortedArray.hpp>
Public Member Functions | |
| sortedArray () | |
| Default constructor. | |
| template<typename... Args> | |
| sortedArray (const T &arg1, const Args &...args) | |
| List-initialized constructor. | |
| virtual int | add (const T &object) override |
| Add an object to the array. | |
| virtual int | find (const T &object) const override |
| Check if a given object is in the array. | |
| virtual int | findInsert (const T &object, bool allowDuplicates=true) const |
| Find an index where the given object can be inserted while keeping the array sorted. | |
| virtual void | shuffle () noexcept override |
| Shuffle the elements of the array into a random order. | |
| virtual void | reverse () noexcept override |
| Reverse the order of all elements in the array. | |
Public Member Functions inherited from z::core::array< T > | |
| array () | |
| Default constructor. | |
| array (const array &other) | |
| Copy constructor. | |
| array (const std::vector< T > &other) | |
| Copy from std::vector. | |
| template<typename... Args> | |
| array (const T &arg1, const Args &...args) | |
| List-initialized constructor. | |
| array (const std::initializer_list< T > &other) | |
| Construct from a generic initializer list. | |
| virtual | ~array () |
| Destructor. | |
| void | clear () |
| Clear the data in the array. | |
| void | increase (int newSize) noexcept |
| Increase the space allocated for this array. | |
| void | add (const array &other) noexcept |
| Add another array to this array. | |
| int | push (const T &object) noexcept |
| Add an object to the array. | |
| void | push (const array &other) noexcept |
| Add another array to this array. | |
| T | pop () |
| Remove the last element from this array. | |
| array & | insert (const T &, int) |
| Insert an object into the array. | |
| void | append (const T &) |
| Append an object to the end of the array. | |
| array & | remove (int) |
| Remove an object from the array. | |
| array & | remove (int, int) |
| Remove all elements in a subset of the array. | |
| array & | replace (int, int, const T &) |
| Replace all objects in the given range with an object. | |
| array & | replace (int, int, const array< T > &) |
| Replace all objects in the given range with an array of objects. | |
| array | subset (int index, int count) const |
| Get a contiguous subset of the elements in the array. | |
| size_t | size () const noexcept override |
| Get the size of the array. | |
| int | length () const noexcept override |
| Get the length of the array. | |
| T & | at (int) |
| Function to get the object at the given index. | |
| const T & | at (int) const override |
| Const function to get the object at the given index. | |
| const T & | operator[] (int index) const override |
| Function to get the object at the given index. | |
| T & | operator[] (int index) |
| Function to get the object at the given index. | |
| bool | contains (const T &object) const noexcept |
| Check if a given object is in the array. | |
| void | sort () noexcept |
| Sort the array based on default comparison operator. | |
| void | sort (std::function< bool(const T &, const T &)> lambda) noexcept |
| Sort the array based on an arbitrary function. | |
| array | sorted () const noexcept |
| Sort the array based on default comparison operator. | |
| array | sorted (std::function< bool(const T &, const T &)> lambda) const noexcept |
| Sort the array based on an arbitrary function. | |
| array | shuffled () const noexcept |
| Shuffle the elements of the array into a random order. | |
| array | reversed () const noexcept |
| Reverse the order of all elements in the array. | |
| array & | operator= (const array &other) |
| Array assignment operator. | |
| array & | operator= (const std::initializer_list< T > &other) |
| Initializer list assignment operator. | |
| bool | operator== (const array &other) const |
| Check whether two arrays' contents are the same. | |
| bool | operator> (const array &other) const |
| Array greater-than operator. | |
| bool | operator< (const array &other) const |
| Array less-than operator. | |
| bool | operator>= (const array &other) const |
| Array greater-than-or-equal operator. | |
| bool | operator<= (const array &other) const |
| Array less-than-or-equal operator. | |
| virtual bool | operator() (const T &arg1, const T &arg2) const |
| Callable operator. | |
| bool | isValid (int index) const |
| Check if an index is within the bounds of the array. | |
| array & | swap (int index1, int index2) |
| Swap two elements in an array. | |
| template<typename U > | |
| array< U > | map (std::function< U(const T &)> lambda) const |
| Applies a transformation function to each element of the array and returns a new array with the results. | |
| array | filter (std::function< bool(const T &)> lambda) const |
| Filters the array based on a predicate and returns a new array containing the elements that satisfy the predicate. | |
| T | reduce (const T &defaultValue, std::function< T(const T &, const T &)> lambda) const |
| Reduces the array to a single value by applying a binary operation cumulatively to the elements. | |
| T | randomElement () const |
| Get a random element from the array. | |
| array | randomElements (int count) const noexcept |
| Get N random elements from the array. | |
| T * | begin () const noexcept override |
| Get pointer to the beginning of the array. | |
| T * | end () const noexcept override |
| Get pointer to the end of the array. | |
| void | save (cereal::JSONOutputArchive &ar) const |
| JSON specialization of serialization output. | |
| void | save (cereal::XMLOutputArchive &ar) const |
| XML specialization of serialization output. | |
| template<typename archive > | |
| void | save (archive &ar) const |
| Binary specialization of serialization output. | |
| void | load (cereal::JSONInputArchive &ar) |
| JSON specialization of serialization input. | |
| void | load (cereal::XMLInputArchive &ar) |
| XML specialization of serialization input. | |
| template<class archive > | |
| void | load (archive &ar) |
| Binary specialization of serialization input. | |
Public Member Functions inherited from z::core::sizable | |
| virtual | ~sizable () noexcept |
| Virtual destructor. | |
Public Member Functions inherited from z::core::indexable< T > | |
| virtual | ~indexable () noexcept |
| Virtual destructor. | |
Public Member Functions inherited from z::core::iterable< ITER > | |
| virtual | ~iterable () noexcept |
| Virtual destructor. | |
Additional Inherited Members | |
Protected Member Functions inherited from z::core::array< T > | |
| void | init (const T &arg1) |
| Helper function for single object initialization. | |
| template<typename... Args> | |
| void | init (const T &arg1, const Args &...args) |
| Helper function for brace-enclosed list initialization. | |
| virtual bool | eq (const T &arg1, const T &arg2) const |
| Check if two objects are equal. | |
| virtual bool | gt (const T &arg1, const T &arg2) const |
| Check if one object is greater than another. | |
| virtual bool | lt (const T &arg1, const T &arg2) const |
| Check if one object is less than another. | |
Protected Attributes inherited from z::core::array< T > | |
| std::vector< T > | array_data |
| The data in the array. | |
An extension of the core::array class which attempts to keep all data sorted.
|
inline |
List-initialized constructor.
Constructs the array with an arbitrary number of elements already contained.
| arg1 | initializing data. |
| args | cont. initializing data. |
Add an object to the array.
Finds an appropriate location and inserts the object into the array, such that the array remains sorted.
| object | the data to add to the array. |
Reimplemented from z::core::array< T >.
Check if a given object is in the array.
Locates the desired index using a binary search, as the array is expected to be sorted.
/note The objects this array contains must be trivially comparable, or have operator>() and operator<() defined.
| object | the object to search for. |
Reimplemented from z::core::array< T >.
|
virtual |
Find an index where the given object can be inserted while keeping the array sorted.
Locates the desired index using a binary search, as the array is expected to be sorted.
| object | The object to search for. |
| allowDuplicates | Whether to allow multiple identical objects. |
|
inlineoverridevirtualnoexcept |
Reverse the order of all elements in the array.
Reverses the array in-place, mutating existing values.
Reimplemented from z::core::array< T >.
|
inlineoverridevirtualnoexcept |
Shuffle the elements of the array into a random order.
Shuffles the array in-place, mutating existing values.
Reimplemented from z::core::array< T >.