U3D
Open-source, cross-platform 2D and 3D game engine built in C++
Loading...
Searching...
No Matches
Urho3D::Vector< T > Class Template Reference

Vector template class. More...

#include </var/dev/u3d/stable/Source/Urho3D/Container/Vector.h>

Inheritance diagram for Urho3D::Vector< T >:
[legend]
Collaboration diagram for Urho3D::Vector< T >:
[legend]

Classes

struct  CopyTag
 
struct  MoveTag
 

Public Types

using ValueType = T
 
using Iterator = RandomAccessIterator< T >
 
using ConstIterator = RandomAccessConstIterator< T >
 

Public Member Functions

 Vector () noexcept=default
 Construct empty.
 
 Vector (unsigned size)
 Construct with initial size.
 
 Vector (unsigned size, const T &value)
 Construct with initial size and default value.
 
 Vector (const T *data, unsigned size)
 Construct with initial data.
 
 Vector (const Vector< T > &vector)
 Copy-construct from another vector.
 
 Vector (ConstIterator start, ConstIterator end)
 Copy-construct from another vector (iterator version).
 
 Vector (Vector< T > &&vector)
 Move-construct from another vector.
 
 Vector (const std::initializer_list< T > &list)
 Aggregate initialization constructor.
 
 ~Vector ()
 Destruct.
 
Vector< T > & operator= (const Vector< T > &rhs)
 Assign from another vector.
 
Vector< T > & operator= (Vector< T > &&rhs)
 Move-assign from another vector.
 
Vector< T > & operator+= (const T &rhs)
 Add-assign an element.
 
Vector< T > & operator+= (const Vector< T > &rhs)
 Add-assign another vector.
 
Vector< T > operator+ (const T &rhs) const
 Add an element.
 
Vector< T > operator+ (const Vector< T > &rhs) const
 Add another vector.
 
bool operator== (const Vector< T > &rhs) const
 Test for equality with another vector.
 
bool operator!= (const Vector< T > &rhs) const
 Test for inequality with another vector.
 
T & operator[] (unsigned index)
 Return element at index.
 
const T & operator[] (unsigned index) const
 Return const element at index.
 
T & At (unsigned index)
 Return element at index.
 
const T & At (unsigned index) const
 Return const element at index.
 
template<class... Args>
T & EmplaceBack (Args &&... args)
 Create an element at the end.
 
void Push (const T &value)
 Add an element at the end.
 
void Push (T &&value)
 Move-add an element at the end.
 
void Push (const Vector< T > &vector)
 Add another vector at the end.
 
void Pop ()
 Remove the last element.
 
void Insert (unsigned pos, const T &value)
 Insert an element at position.
 
void Insert (unsigned pos, T &&value)
 Insert an element at position.
 
void Insert (unsigned pos, const Vector< T > &vector)
 Insert another vector at position.
 
Iterator Insert (const Iterator &dest, const T &value)
 Insert an element by iterator.
 
Iterator Insert (const Iterator &dest, T &&value)
 Move-insert an element by iterator.
 
Iterator Insert (const Iterator &dest, const Vector< T > &vector)
 Insert a vector by iterator.
 
Iterator Insert (const Iterator &dest, const ConstIterator &start, const ConstIterator &end)
 Insert a vector partially by iterators.
 
Iterator Insert (const Iterator &dest, const T *start, const T *end)
 Insert elements.
 
void Erase (unsigned pos, unsigned length=1)
 Erase a range of elements.
 
void EraseSwap (unsigned pos, unsigned length=1)
 Erase a range of elements by swapping elements from the end of the array.
 
Iterator Erase (const Iterator &it)
 Erase an element by iterator. Return iterator to the next element.
 
Iterator Erase (const Iterator &start, const Iterator &end)
 Erase a range by iterators. Return iterator to the next element.
 
bool Remove (const T &value)
 Erase an element by value. Return true if was found and erased.
 
bool RemoveSwap (const T &value)
 Erase an element by value by swapping with the last element. Return true if was found and erased.
 
void Clear ()
 Clear the vector.
 
void Resize (unsigned newSize)
 Resize the vector.
 
void Resize (unsigned newSize, const T &value)
 Resize the vector and fill new elements with default value.
 
void Reserve (unsigned newCapacity)
 Set new capacity.
 
void Compact ()
 Reallocate so that no extra memory is used.
 
Iterator Find (const T &value)
 Return iterator to value, or to the end if not found.
 
ConstIterator Find (const T &value) const
 Return const iterator to value, or to the end if not found.
 
unsigned IndexOf (const T &value) const
 Return index of value in vector, or size if not found.
 
bool Contains (const T &value) const
 Return whether contains a specific value.
 
Iterator Begin ()
 Return iterator to the beginning.
 
ConstIterator Begin () const
 Return const iterator to the beginning.
 
Iterator End ()
 Return iterator to the end.
 
ConstIterator End () const
 Return const iterator to the end.
 
T & Front ()
 Return first element.
 
const T & Front () const
 Return const first element.
 
T & Back ()
 Return last element.
 
const T & Back () const
 Return const last element.
 
unsigned Size () const
 Return size of vector.
 
unsigned Capacity () const
 Return capacity of vector.
 
bool Empty () const
 Return whether vector is empty.
 
T * Buffer () const
 Return the buffer with right type.
 
- Public Member Functions inherited from Urho3D::VectorBase
 VectorBase () noexcept
 Construct.
 
void Swap (VectorBase &rhs)
 Swap with another vector.
 

Private Member Functions

void DoResize (unsigned newSize)
 Resize the vector and create/remove new elements as necessary.
 
template<class Tag , class RandomIteratorT >
Iterator DoInsertElements (unsigned pos, RandomIteratorT start, RandomIteratorT end, Tag)
 Insert elements into the vector using copy or move constructor.
 
Iterator DoEraseElements (unsigned pos, unsigned count)
 Erase elements from the vector.
 

Static Private Member Functions

static void ConstructElements (T *dest, unsigned count)
 Construct elements using default ctor.
 
template<class RandomIteratorT >
static void ConstructElements (T *dest, RandomIteratorT start, RandomIteratorT end, CopyTag)
 Copy-construct elements.
 
template<class RandomIteratorT >
static void ConstructElements (T *dest, RandomIteratorT start, RandomIteratorT end, MoveTag)
 Move-construct elements.
 
static unsigned CalculateCapacity (unsigned size, unsigned capacity)
 Calculate new vector capacity.
 
static void DestructElements (T *dest, unsigned count)
 Call the elements' destructors.
 

Additional Inherited Members

- Static Protected Member Functions inherited from Urho3D::VectorBase
static unsigned char * AllocateBuffer (unsigned size)
 
- Protected Attributes inherited from Urho3D::VectorBase
unsigned size_
 Size of vector.
 
unsigned capacity_
 Buffer capacity.
 
unsigned char * buffer_
 Buffer.
 

Detailed Description

template<class T>
class Urho3D::Vector< T >

Vector template class.


The documentation for this class was generated from the following file: