RavEngine
Loading...
Searching...
No Matches
RavEngine::unordered_vector< T, vec > Class Template Reference

#include <unordered_vector.hpp>

Inheritance diagram for RavEngine::unordered_vector< T, vec >:
[legend]

Public Types

typedef decltype(underlying) ::iterator iterator_type
 
typedef decltype(underlying) ::const_iterator const_iterator_type
 
typedef decltype(underlying) ::size_type index_type
 
typedef decltype(underlying) ::size_type size_type
 
using value_type = T
 

Public Member Functions

const_iterator_type erase (iterator_type it)
 
auto & get_underlying ()
 
const_iterator_type erase (const T &value)
 
T & insert (const T &value)
 
template<typename ... A>
T & emplace (A &&... args)
 
T & operator[] (index_type idx)
 
const T & operator[] (index_type idx) const
 
T & at (index_type idx)
 
const T & at (index_type idx) const
 
const_iterator_type begin () const
 
const_iterator_type end () const
 
iterator_type end ()
 
iterator_type begin ()
 
size_type size () const
 
void reserve (size_t num)
 
void resize (size_t num)
 
bool empty () const
 
void clear ()
 
auto data () const
 

Detailed Description

template<typename T, typename vec = std::vector<T>>
class RavEngine::unordered_vector< T, vec >

The Unordered Vector provides:

  • O(1) erase by iterator All other complexities for valid behaviors are identical to a regular vector. Elements must be moveable. Note that the order of elements cannot be guareneed.

Member Function Documentation

◆ emplace()

template<typename T , typename vec = std::vector<T>>
template<typename ... A>
T & RavEngine::unordered_vector< T, vec >::emplace ( A &&...  args)
inline

Add an item to the container

Parameters
valuethe data to add
Returns
a reference to the emplaced item
Note
references may become invalid if an item is erased from the container

◆ erase() [1/2]

template<typename T , typename vec = std::vector<T>>
const_iterator_type RavEngine::unordered_vector< T, vec >::erase ( const T &  value)
inline

Erase by value. Complexity is O(n)

Parameters
valuethe data to erase

◆ erase() [2/2]

template<typename T , typename vec = std::vector<T>>
const_iterator_type RavEngine::unordered_vector< T, vec >::erase ( iterator_type  it)
inline

Erase by iterator. Complexity is O(1).

Parameters
itthe iterator to erase

◆ get_underlying()

template<typename T , typename vec = std::vector<T>>
auto & RavEngine::unordered_vector< T, vec >::get_underlying ( )
inline
Returns
the underlying vector. Do not modify!

◆ insert()

template<typename T , typename vec = std::vector<T>>
T & RavEngine::unordered_vector< T, vec >::insert ( const T &  value)
inline

Add an item to the container

Parameters
valuethe data to add
Returns
a reference to the pushed item
Note
references may become invalid if an item is erased from the container

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