| OGRE 1.11.1 Object-Oriented Graphics Rendering Engine

Public Types | Public Member Functions | Static Public Member Functions | List of all members
Ogre::VectorSet< T, S > Struct Template Reference

VectorSet is basically a helper to use a vector as a small set container. More...

`#include <OgreVectorSet.h>`

Inheritance diagram for Ogre::VectorSet< T, S >:
[legend]

## Public Types
typedef const T * | const_iterator
typedef const T * | const_pointer
typedef const T & | const_reference
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator
typedef ptrdiff_t | difference_type
typedef SmallVector< T, S >::iterator | iterator
typedef T * | pointer
typedef T & | reference
typedef std::reverse_iterator< iterator > | reverse_iterator
typedef SuperClass::size_type | size_type
typedef T | value_type

## Public Member Functions
iterator | add (const T &item)
void | addNotExists (const T &item)
template<typename in_iter >
void | append (in_iter in_start, in_iter in_end)
| append - Add the specified range to the end of the SmallVector. More...
void | append (size_type NumInputs, const T &Elt)
| append - Add the specified range to the end of the SmallVector. More...
void | assign (unsigned NumElts, const T &Elt)
reference | back ()
const_reference | back () const
iterator | begin ()
const_iterator | begin () const
size_t | capacity () const
| capacity - Return the total number of elements in the currently allocated buffer. More...
void | clear ()
pointer | data ()
| data - Return a pointer to the vector's buffer, even if empty(). More...
const_pointer | data () const
| data - Return a pointer to the vector's buffer, even if empty(). More...
bool | empty () const
iterator | end ()
const_iterator | end () const
iterator | erase (iterator I)
iterator | erase (iterator S, iterator E)
iterator | find (const T &item)
iterator | findExists (const T &item)
reference | front ()
const_reference | front () const
void | grow (size_t MinSize=0)
| grow - double the size of the allocated memory, guaranteeing space for at least one more element or MinSize if specified. More...
bool | has (const T &item)
iterator | insert (iterator I, const T &Elt)
iterator | insert (iterator I, size_type NumToInsert, const T &Elt)
template<typename ItTy >
iterator | insert (iterator I, ItTy From, ItTy To)
size_type | max_size () const
bool | operator!= (const SmallVectorImpl &RHS) const
bool | operator< (const SmallVectorImpl &RHS) const
bool | operator== (const SmallVectorImpl &RHS) const
reference | operator[] (unsigned idx)
const_reference | operator[] (unsigned idx) const
void | pop_back ()
T | pop_back_val ()
void | push_back (const T &Elt)
reverse_iterator | rbegin ()
const_reverse_iterator | rbegin () const
void | remove (iterator it)
bool | remove (const T &item)
void | removeExists (const T &item)
reverse_iterator | rend ()
const_reverse_iterator | rend () const
void | replaceExists (const T &oldItem, const T &newItem)
void | reserve (unsigned N)
void | resize (unsigned N)
void | resize (unsigned N, const T &NV)
void | set_size (unsigned N)
| set_size - Set the array size to More...
size_type | size () const
void | swap (SmallVectorImpl &RHS)

## Static Public Member Functions
static void | destroy_range (T *S, T *E)
static void | uninitialized_copy (It1 I, It1 E, It2 Dest)
| uninitialized_copy - Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed. More...

## Detailed Description

### template<typename T, unsigned S>
struct Ogre::VectorSet< T, S >

VectorSet is basically a helper to use a vector as a small set container.

Also these functions keep the code clean and fast. You can insert in O(1) time, if you know that it doesn't exists. You can remove in O(1) time, if you know the position of the item.

## Member Typedef Documentation

## ◆ iterator

template<typename T, unsigned S>

typedef SmallVector<T, S>::iterator Ogre::VectorSet< T, S >::iterator

## ◆ size_type

template<typename T>

typedef SuperClass::size_type Ogre::SmallVectorImpl< T >::size_type
| inherited

## ◆ difference_type

template<typename T>

typedef ptrdiff_t Ogre::SmallVectorTemplateCommon< T >::difference_type
| inherited

## ◆ value_type

template<typename T>

typedef T Ogre::SmallVectorTemplateCommon< T >::value_type
| inherited

## ◆ const_iterator

template<typename T>

typedef const T* Ogre::SmallVectorTemplateCommon< T >::const_iterator
| inherited

## ◆ const_reverse_iterator

template<typename T>

typedef std::reverse_iterator<const_iterator> Ogre::SmallVectorTemplateCommon< T >::const_reverse_iterator
| inherited

## ◆ reverse_iterator

template<typename T>

typedef std::reverse_iterator<iterator> Ogre::SmallVectorTemplateCommon< T >::reverse_iterator
| inherited

## ◆ reference

template<typename T>

typedef T& Ogre::SmallVectorTemplateCommon< T >::reference
| inherited

## ◆ const_reference

template<typename T>

typedef const T& Ogre::SmallVectorTemplateCommon< T >::const_reference
| inherited

## ◆ pointer

template<typename T>

typedef T* Ogre::SmallVectorTemplateCommon< T >::pointer
| inherited

## ◆ const_pointer

template<typename T>

typedef const T* Ogre::SmallVectorTemplateCommon< T >::const_pointer
| inherited

## Member Function Documentation

## ◆ addNotExists()

template<typename T, unsigned S>

void Ogre::VectorSet< T, S >::addNotExists | ( | const T & | item | ) |

## ◆ remove() [1/2]

template<typename T , unsigned S>

void Ogre::VectorSet< T, S >::remove | ( | iterator | it | ) |

## ◆ add()

template<typename T, unsigned S>

VectorSet< T, S >::iterator Ogre::VectorSet< T, S >::add | ( | const T & | item | ) |

## ◆ removeExists()

template<typename T, unsigned S>

void Ogre::VectorSet< T, S >::removeExists | ( | const T & | item | ) |

## ◆ remove() [2/2]

template<typename T, unsigned S>

bool Ogre::VectorSet< T, S >::remove | ( | const T & | item | ) |

## ◆ replaceExists()

template<typename T, unsigned S>

void Ogre::VectorSet< T, S >::replaceExists | ( | const T & | oldItem,
|  | const T & | newItem
| ) |  |

## ◆ has()

template<typename T, unsigned S>

bool Ogre::VectorSet< T, S >::has | ( | const T & | item | ) |

## ◆ find()

template<typename T, unsigned S>

VectorSet< T, S >::iterator Ogre::VectorSet< T, S >::find | ( | const T & | item | ) |

## ◆ findExists()

template<typename T, unsigned S>

VectorSet< T, S >::iterator Ogre::VectorSet< T, S >::findExists | ( | const T & | item | ) |

## ◆ clear()

template<typename T>

void Ogre::SmallVectorImpl< T >::clear | ( | void |  | ) |
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::assign().

## ◆ resize() [1/2]

template<typename T>

void Ogre::SmallVectorImpl< T >::resize | ( | unsigned | N | ) |
| inline inherited

## ◆ resize() [2/2]

template<typename T>

void Ogre::SmallVectorImpl< T >::resize | ( | unsigned | N,
|  | const T & | NV
| ) |  |
| inline inherited

## ◆ reserve()

template<typename T>

void Ogre::SmallVectorImpl< T >::reserve | ( | unsigned | N | ) |
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::insert(), Ogre::SmallVector< T, S >::SmallVector(), and Ogre::SmallVector< T, 0 >::SmallVector().

## ◆ push_back()

template<typename T>

void Ogre::SmallVectorImpl< T >::push_back | ( | const T & | Elt | ) |
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::insert(), Ogre::SmallVector< T, S >::SmallVector(), and Ogre::SmallVector< T, 0 >::SmallVector().

## ◆ pop_back()

template<typename T>

void Ogre::SmallVectorImpl< T >::pop_back | ( |  | ) |
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::erase(), and Ogre::SmallVectorImpl< Triangle * >::pop_back_val().

## ◆ pop_back_val()

template<typename T>

T Ogre::SmallVectorImpl< T >::pop_back_val | ( |  | ) |
| inline inherited

## ◆ swap()

template<typename T >

void Ogre::SmallVectorImpl< T >::swap | ( | SmallVectorImpl< T > & | RHS | ) |
| inherited

Referenced by std::swap().

## ◆ append() [1/2]

template<typename T>
template<typename in_iter >

void Ogre::SmallVectorImpl< T >::append | ( | in_iter | in_start,
|  | in_iter | in_end
| ) |  |
| inline inherited

append - Add the specified range to the end of the SmallVector.

Referenced by Ogre::SmallVectorImpl< Triangle * >::insert(), Ogre::SmallVector< T, S >::SmallVector(), and Ogre::SmallVector< T, 0 >::SmallVector().

## ◆ append() [2/2]

template<typename T>

void Ogre::SmallVectorImpl< T >::append | ( | size_type | NumInputs,
|  | const T & | Elt
| ) |  |
| inline inherited

append - Add the specified range to the end of the SmallVector.

## ◆ assign()

template<typename T>

void Ogre::SmallVectorImpl< T >::assign | ( | unsigned | NumElts,
|  | const T & | Elt
| ) |  |
| inline inherited

## ◆ erase() [1/2]

template<typename T>

iterator Ogre::SmallVectorImpl< T >::erase | ( | iterator | I | ) |
| inline inherited

## ◆ erase() [2/2]

template<typename T>

iterator Ogre::SmallVectorImpl< T >::erase | ( | iterator | S,
|  | iterator | E
| ) |  |
| inline inherited

## ◆ insert() [1/3]

template<typename T>

iterator Ogre::SmallVectorImpl< T >::insert | ( | iterator | I,
|  | const T & | Elt
| ) |  |
| inline inherited

## ◆ insert() [2/3]

template<typename T>

iterator Ogre::SmallVectorImpl< T >::insert | ( | iterator | I,
|  | size_type | NumToInsert,
|  | const T & | Elt
| ) |  |
| inline inherited

## ◆ insert() [3/3]

template<typename T>
template<typename ItTy >

iterator Ogre::SmallVectorImpl< T >::insert | ( | iterator | I,
|  | ItTy | From,
|  | ItTy | To
| ) |  |
| inline inherited

## ◆ operator==()

template<typename T>

bool Ogre::SmallVectorImpl< T >::operator== | ( | const SmallVectorImpl< T > & | RHS | ) | const
| inline inherited

## ◆ operator!=()

template<typename T>

bool Ogre::SmallVectorImpl< T >::operator!= | ( | const SmallVectorImpl< T > & | RHS | ) | const
| inline inherited

## ◆ operator<()

template<typename T>

bool Ogre::SmallVectorImpl< T >::operator< | ( | const SmallVectorImpl< T > & | RHS | ) | const
| inline inherited

## ◆ set_size()

template<typename T>

void Ogre::SmallVectorImpl< T >::set_size | ( | unsigned | N | ) |
| inline inherited

set_size - Set the array size to

- N, which the current array must have enough capacity for.

This does not construct or destroy any elements in the vector.

Clients can use this in conjunction with capacity() to write past the end of the buffer when they know that more elements are available, and only update the size later. This avoids the cost of value initializing elements which will only be overwritten.

## ◆ destroy_range()

static void Ogre::SmallVectorTemplateBase< T, isPodLike >::destroy_range | ( | T * | S,
|  | T * | E
| ) |  |
| inline static inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::clear(), Ogre::SmallVectorImpl< Triangle * >::erase(), Ogre::SmallVectorImpl< Triangle * >::resize(), and Ogre::SmallVectorImpl< Triangle * >::~SmallVectorImpl().

## ◆ uninitialized_copy()

static void Ogre::SmallVectorTemplateBase< T, isPodLike >::uninitialized_copy | ( | It1 | I,
|  | It1 | E,
|  | It2 | Dest
| ) |  |
| inline static inherited

uninitialized_copy - Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.

Referenced by Ogre::SmallVectorImpl< Triangle * >::insert().

## ◆ grow()

void Ogre::SmallVectorTemplateBase< T, isPodLike >::grow | ( | size_t | MinSize = `0` | ) |
| inherited

grow - double the size of the allocated memory, guaranteeing space for at least one more element or MinSize if specified.

Referenced by Ogre::SmallVectorImpl< Triangle * >::append(), Ogre::SmallVectorImpl< Triangle * >::assign(), Ogre::SmallVectorImpl< Triangle * >::insert(), Ogre::SmallVectorImpl< Triangle * >::push_back(), Ogre::SmallVectorImpl< Triangle * >::reserve(), Ogre::SmallVectorImpl< Triangle * >::resize(), and Ogre::SmallVectorImpl< Triangle * >::swap().

## ◆ begin() [1/2]

template<typename T>

iterator Ogre::SmallVectorTemplateCommon< T >::begin | ( |  | ) |
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::assign(), Ogre::SmallVectorTemplateCommon< Triangle * >::capacity(), Ogre::SmallVectorImpl< Triangle * >::clear(), Ogre::SmallVectorTemplateCommon< Triangle * >::data(), Ogre::SmallVectorTemplateCommon< Triangle * >::front(), Ogre::SmallVectorImpl< Triangle * >::insert(), Ogre::SmallVectorImpl< Triangle * >::operator<(), Ogre::SmallVectorImpl< Triangle * >::operator=(), Ogre::SmallVectorImpl< Triangle * >::operator==(), Ogre::SmallVectorTemplateCommon< Triangle * >::operator[](), Ogre::SmallVectorTemplateCommon< Triangle * >::rend(), Ogre::SmallVectorImpl< Triangle * >::resize(), Ogre::SmallVectorImpl< Triangle * >::set_size(), Ogre::SmallVectorTemplateCommon< Triangle * >::size(), Ogre::SmallVectorImpl< Triangle * >::swap(), and Ogre::SmallVectorImpl< Triangle * >::~SmallVectorImpl().

## ◆ begin() [2/2]

template<typename T>

const_iterator Ogre::SmallVectorTemplateCommon< T >::begin | ( |  | ) | const
| inline inherited

## ◆ end() [1/2]

template<typename T>

iterator Ogre::SmallVectorTemplateCommon< T >::end | ( | void |  | ) |
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::append(), Ogre::SmallVectorImpl< Triangle * >::assign(), Ogre::SmallVectorTemplateCommon< Triangle * >::back(), Ogre::SmallVectorImpl< Triangle * >::clear(), Ogre::SmallVectorImpl< Triangle * >::erase(), Ogre::SmallVectorImpl< Triangle * >::insert(), Ogre::SmallVectorImpl< Triangle * >::operator<(), Ogre::SmallVectorImpl< Triangle * >::operator=(), Ogre::SmallVectorImpl< Triangle * >::operator==(), Ogre::SmallVectorTemplateCommon< Triangle * >::operator[](), Ogre::SmallVectorImpl< Triangle * >::pop_back(), Ogre::SmallVectorImpl< Triangle * >::push_back(), Ogre::SmallVectorTemplateCommon< Triangle * >::rbegin(), Ogre::SmallVectorImpl< Triangle * >::resize(), Ogre::SmallVectorTemplateCommon< Triangle * >::size(), Ogre::SmallVectorImpl< Triangle * >::swap(), and Ogre::SmallVectorImpl< Triangle * >::~SmallVectorImpl().

## ◆ end() [2/2]

template<typename T>

const_iterator Ogre::SmallVectorTemplateCommon< T >::end | ( | void |  | ) | const
| inline inherited

## ◆ rbegin() [1/2]

template<typename T>

reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rbegin | ( |  | ) |
| inline inherited

## ◆ rbegin() [2/2]

template<typename T>

const_reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rbegin | ( |  | ) | const
| inline inherited

## ◆ rend() [1/2]

template<typename T>

reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rend | ( |  | ) |
| inline inherited

## ◆ rend() [2/2]

template<typename T>

const_reverse_iterator Ogre::SmallVectorTemplateCommon< T >::rend | ( |  | ) | const
| inline inherited

## ◆ size()

template<typename T>

size_type Ogre::SmallVectorTemplateCommon< T >::size | ( | void |  | ) | const
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::append(), Ogre::SmallVectorImpl< Triangle * >::insert(), Ogre::SmallVectorImpl< Triangle * >::operator=(), Ogre::SmallVectorImpl< Triangle * >::operator==(), Ogre::SmallVectorImpl< Triangle * >::resize(), and Ogre::SmallVectorImpl< Triangle * >::swap().

## ◆ max_size()

template<typename T>

size_type Ogre::SmallVectorTemplateCommon< T >::max_size | ( |  | ) | const
| inline inherited

## ◆ capacity()

template<typename T>

size_t Ogre::SmallVectorTemplateCommon< T >::capacity | ( |  | ) | const
| inline inherited

capacity - Return the total number of elements in the currently allocated buffer.

Referenced by Ogre::SmallVectorImpl< Triangle * >::assign(), Ogre::SmallVectorImpl< Triangle * >::reserve(), Ogre::SmallVectorImpl< Triangle * >::resize(), Ogre::SmallVectorImpl< Triangle * >::set_size(), and Ogre::SmallVectorImpl< Triangle * >::swap().

## ◆ data() [1/2]

template<typename T>

pointer Ogre::SmallVectorTemplateCommon< T >::data | ( |  | ) |
| inline inherited

data - Return a pointer to the vector's buffer, even if empty().

## ◆ data() [2/2]

template<typename T>

const_pointer Ogre::SmallVectorTemplateCommon< T >::data | ( |  | ) | const
| inline inherited

data - Return a pointer to the vector's buffer, even if empty().

## ◆ operator[]() [1/2]

template<typename T>

reference Ogre::SmallVectorTemplateCommon< T >::operator[] | ( | unsigned | idx | ) |
| inline inherited

## ◆ operator[]() [2/2]

template<typename T>

const_reference Ogre::SmallVectorTemplateCommon< T >::operator[] | ( | unsigned | idx | ) | const
| inline inherited

## ◆ front() [1/2]

template<typename T>

reference Ogre::SmallVectorTemplateCommon< T >::front | ( |  | ) |
| inline inherited

## ◆ front() [2/2]

template<typename T>

const_reference Ogre::SmallVectorTemplateCommon< T >::front | ( |  | ) | const
| inline inherited

## ◆ back() [1/2]

template<typename T>

reference Ogre::SmallVectorTemplateCommon< T >::back | ( |  | ) |
| inline inherited

Referenced by Ogre::SmallVectorImpl< Triangle * >::insert(), and Ogre::SmallVectorImpl< Triangle * >::pop_back_val().

## ◆ back() [2/2]

template<typename T>

const_reference Ogre::SmallVectorTemplateCommon< T >::back | ( |  | ) | const
| inline inherited

## ◆ empty()

bool Ogre::SmallVectorBase::empty | ( |  | ) | const
| inline inherited

Referenced by Ogre::SmallVector< T, S >::SmallVector().

The documentation for this struct was generated from the following files:

- OgreVectorSet.h
- OgreVectorSetImpl.h