15 #ifndef STXXL_COMMON_SIMPLE_VECTOR_HEADER
16 #define STXXL_COMMON_SIMPLE_VECTOR_HEADER
38 template <
typename ValueType>
63 : m_size(0), m_array(NULL)
67 : m_size(sz), m_array(NULL)
70 m_array =
new value_type[m_size];
75 std::swap(m_size, obj.
m_size);
76 std::swap(m_array, obj.
m_array);
111 return m_array + m_size;
116 return m_array + m_size;
132 return *(begin() + i);
138 return *(begin() + i);
145 STXXL_MSG(
"Warning: resizing non-empty simple_vector");
146 value_type* tmp = m_array;
147 m_array =
new value_type[newsize];
148 memcpy((
void*)m_array, (
void*)tmp,
149 sizeof(value_type) *
STXXL_MIN(m_size, newsize));
155 m_array =
new value_type[newsize];
162 memset(m_array, 0, m_size *
sizeof(value_type));
172 template <
class ValueType>
181 #endif // !STXXL_COMMON_SIMPLE_VECTOR_HEADER
const_iterator end() const
return constant iterator beyond last element
~simple_vector()
delete vector
simple_vector()
allocate empty simple vector
const Type & STXXL_MIN(const Type &a, const Type &b)
iterator data()
return iterator to beginning of vector
const value_type * const_iterator
const_iterator begin() const
return constant iterator to first element
const value_type & const_reference
size_type size() const
return number of items in vector
iterator end()
return mutable iterator beyond last element
const_iterator cend() const
return constant iterator beyond last element
void memzero()
Zero the whole array content.
iterator begin()
return mutable iterator to first element
value_type * m_array
pointer to allocated memory area
const_iterator data() const
return iterator to beginning of vector
void swap(simple_vector &obj)
swap vector with another one
#define STXXL_BEGIN_NAMESPACE
simple_vector(size_type sz)
allocate vector's memory
size_type m_size
size of allocated memory
Simpler non-growing vector without initialization.
const_iterator cbegin() const
return constant iterator to first element
#define STXXL_END_NAMESPACE
void resize(size_type newsize)
resize the array to contain exactly newsize items