openscenegraph
Public Member Functions | Public Attributes | List of all members
osg::fast_back_stack< T > Class Template Reference

#include <fast_back_stack>

Public Member Functions

 fast_back_stack ()
 
 fast_back_stack (const fast_back_stack &fbs)
 
 fast_back_stack (const T &value)
 
fast_back_stackoperator= (const fast_back_stack &fbs)
 
void clear ()
 
bool empty () const
 
unsigned int size () const
 
T & back ()
 
const T & back () const
 
void push_back ()
 
void push_back (const T &value)
 
void pop_back ()
 

Public Attributes

_value
 
std::vector< T > _stack
 
unsigned int _size
 

Detailed Description

template<class T>
class osg::fast_back_stack< T >

Simple stack implementation that keeps the back() cached locally for fast access rather than at the back of the vector which is the traditional stack implementation. A conventional std::vector<> stores the rest of the stack. Although fast_back_stack contains a stl container it only implements the back push_back(),pop_back() and back() methods so is not as general purpose as stl stack implementation. The focus of the fast_back_stack is purely to maximize the speed at which the back can be accessed.

Constructor & Destructor Documentation

◆ fast_back_stack() [1/3]

template<class T >
osg::fast_back_stack< T >::fast_back_stack ( )
inline

◆ fast_back_stack() [2/3]

template<class T >
osg::fast_back_stack< T >::fast_back_stack ( const fast_back_stack< T > &  fbs)
inline

◆ fast_back_stack() [3/3]

template<class T >
osg::fast_back_stack< T >::fast_back_stack ( const T &  value)
inline

Member Function Documentation

◆ back() [1/2]

template<class T >
T & osg::fast_back_stack< T >::back ( )
inline

◆ back() [2/2]

template<class T >
const T & osg::fast_back_stack< T >::back ( ) const
inline

◆ clear()

template<class T >
void osg::fast_back_stack< T >::clear ( )
inline

◆ empty()

template<class T >
bool osg::fast_back_stack< T >::empty ( ) const
inline

◆ operator=()

template<class T >
fast_back_stack & osg::fast_back_stack< T >::operator= ( const fast_back_stack< T > &  fbs)
inline

◆ pop_back()

template<class T >
void osg::fast_back_stack< T >::pop_back ( )
inline

◆ push_back() [1/2]

template<class T >
void osg::fast_back_stack< T >::push_back ( )
inline

◆ push_back() [2/2]

template<class T >
void osg::fast_back_stack< T >::push_back ( const T &  value)
inline

◆ size()

template<class T >
unsigned int osg::fast_back_stack< T >::size ( ) const
inline

Member Data Documentation

◆ _size

template<class T >
unsigned int osg::fast_back_stack< T >::_size

◆ _stack

template<class T >
std::vector<T> osg::fast_back_stack< T >::_stack

◆ _value

template<class T >
T osg::fast_back_stack< T >::_value

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