|
|
constexpr | FArray () |
| | Default constructor - the array size is zero.
|
| |
| | FArray (size_type s, const T &t=T()) |
| |
|
template<uint64 S2> |
| | FArray (const FArray< T, S2, I > &f) |
| | Copy constructor, valid for FArrays of the same data type but different stack lengths.
|
| |
|
constexpr | FArray (const FArray< T, S, I > &f) |
| | Specialized copy constructor, for the special case of when the stack lengths are the same.
|
| |
|
| FArray (std::initializer_list< T > l) |
| |
|
| ~FArray () |
| | Destructor.
|
| |
|
constexpr const FArray< T, S, I > & | operator= (const FArray< T, S, I > &f) |
| |
|
template<uint64 S2> |
| constexpr const FArray< T, S, I > & | operator= (const FArray< T, S2, I > &f) |
| | Assignment operator, valid for FArrays of the same data type but different stack lengths.
|
| |
|
template<uint64 S2> |
| bool | operator== (const FArray< T, S2, I > &f) const |
| |
| I | size () const |
| |
|
size_type | stackSize () const |
| | Returns the size of the array pre-allocated on the stack.
|
| |
| size_type | allocated () const |
| |
| bool | empty () const |
| |
| T * | data () |
| |
| const T * | data () const |
| |
| T & | front () |
| |
| const T & | front () const |
| |
| T & | back () |
| |
| const T & | back () const |
| |
| I | find (const T &t) const |
| |
|
size_type | capacity () const |
| |
|
void | push_back (const T &t) |
| | Adds a new element to the end of the array, increasing the array size by one.
|
| |
| T * | emplace_back () |
| |
| T * | emplace_n_back (size_type n) |
| |
|
void | pop_back () |
| | Removes the last element in the array. The results are undefined if the array is of zero length.
|
| |
| void | resize (I i, const T &t=T()) |
| |
| iterator | insert (I i, const T &t) |
| |
|
void | put (I i, const T &t) |
| | Adds a value to the array, first making certain it is big enough to hold it.
|
| |
|
template<class C > |
| void | append (const C &in) |
| | Appends the contents of one FArray onto another.
|
| |
| iterator | insert (iterator it, const T &t) |
| |
| bool | remove (I i) |
| |
| size_type | removeAll (const T &t) |
| |
| void | clear () |
| |
| void | reset () |
| |
|
void | reserve (size_type s) |
| |
| void | clip () |
| |
| iterator | begin () |
| |
| const_iterator | begin () const |
| |
| const_iterator | constBegin () const |
| |
| iterator | end () |
| |
| const_iterator | end () const |
| |
| const_iterator | constEnd () const |
| |
| T & | at (I i) |
| |
| const T & | at (I i) const |
| |
| T & | operator[] (I i) |
| |
| const T & | operator[] (I i) const |
| |
| T | value (I i, const T &t={}) const |
| |
template<typename T, uint64 S = 32, typename I = uint64>
class FArray< T, S, I >
An array class that attempts to minimize unnecessary heap access.
T is the data type.
S is the stack length.
This class attempts to provide a speed-optimized array for use in plot generation.
It does this in two ways.
First, it attempts to minimize heap churn by not deallocating memory.
Second, it has a second template argument that indicates how much memory to create ON THE STACK. Only if the array size needs to exceed S, does it actually use memory from the heap.