Public Types | Public Member Functions

grow_shrink_stack< Config_ > Class Template Reference
[Internals]

Efficient implementation that uses prefetching and overlapping using internal buffers. More...

#include <stack.h>

Inherits noncopyable.

List of all members.

Public Types

enum  { blocks_per_page = cfg::blocks_per_page, block_size = cfg::block_size }
typedef Config_ cfg
typedef cfg::value_type value_type
typedef cfg::alloc_strategy alloc_strategy_type
typedef cfg::size_type size_type
typedef typed_block
< block_size, value_type > 
block_type
typedef BID< block_size > bid_type

Public Member Functions

void swap (grow_shrink_stack &obj)
template<class stack_type >
 grow_shrink_stack (const stack_type &stack_)
 Construction from a stack.
size_type size () const
bool empty () const
value_type & top ()
const value_type & top () const
void push (const value_type &val)
void pop ()

Detailed Description

template<class Config_>
class grow_shrink_stack< Config_ >

Efficient implementation that uses prefetching and overlapping using internal buffers.

Use it if your access pattern consists of many repeated push'es and pop's For semantics of the methods see documentation of the STL std::stack.

Warning:
The amortized complexity of operation is not O(1/DB), rather O(DB)

Constructor & Destructor Documentation

template<class Config_ >
template<class stack_type >
grow_shrink_stack< Config_ >::grow_shrink_stack ( const stack_type &  stack_  )  [inline]

Construction from a stack.

Parameters:
stack_ stack object (could be external or internal, important is that it must have a copy constructor, top() and pop() methods )

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