July 2007
Intermediate to advanced
332 pages
10h 4m
English
concurrent_vector Template Class — Template class for vector that can be concurrently grown and accessed.
#include "tbb/concurrent_vector.h" template<typename T> class concurrent_vector;
namespace tbb {
template<typename T>
class concurrent_vector {
public:
typedef size_t size_type;
typedef T value_type;
typedef ptrdiff_t difference_type;
typedef T& reference;
typedef const T& const_reference;
// whole vector operations
concurrent_vector( ) {}
concurrent_vector( const concurrent_vector& );
concurrent_vector& operator=( const concurrent_vector&);
~concurrent_vector( );
void clear( );
// concurrent operations
size_type grow_by( size_type delta );
void grow_to_at_least( size_type new_size );
size_type push_back( const_reference value );
reference operator[]( size_type index );
const_reference operator[]( size_type index ) const;
// parallel iteration
typedefimplementation-defined iterator;
typedef implementation-defined const_iterator;
typedef generic_range_type<iterator> range_type;
typedef generic_range_type<const_iterator> const_range_type;
range_type range( size_t grainsize );
const_range_type range( size_t grainsize ) const;
// capacity
size_type size( ) const;
bool empty( ) const;
size_type capacity( ) const;
void reserve( size_type n );
size_type max_size( ) const;
// STL support
iterator begin( );
iterator end( );
const_iterator begin( ) const;
const_iterator end( ) const;
typedef implementation-defined reverse_iterator;
typedef implementation-defined const_reverse_iterator; ...