13 #ifndef STXXL_SIMPLE_VECTOR_HEADER
14 #define STXXL_SIMPLE_VECTOR_HEADER
16 #include <stxxl/bits/noncopyable.h>
17 #include <stxxl/bits/common/utils.h>
20 __STXXL_BEGIN_NAMESPACE
23 class simple_vector :
private noncopyable
29 typedef size_t size_type;
30 typedef _Tp value_type;
38 typedef value_type * iterator;
39 typedef const value_type * const_iterator;
40 typedef value_type & reference;
41 typedef const value_type & const_reference;
43 simple_vector(size_type sz) : _size(sz)
49 void swap(simple_vector & obj)
51 std::swap(_size, obj._size);
52 std::swap(_array, obj._array);
63 const_iterator begin()
const
67 const_iterator cbegin()
const
73 return _array + _size;
75 const_iterator end()
const
77 return _array + _size;
79 const_iterator cend()
const
83 size_type size()
const
87 reference operator [] (size_type i)
89 return *(begin() + i);
91 const_reference operator [] (size_type i)
const
93 return *(begin() + i);
101 void swap(stxxl::simple_vector<Tp_> & a,
102 stxxl::simple_vector<Tp_> & b)
108 #endif // !STXXL_SIMPLE_VECTOR_HEADER