DUECA/DUSIME
|
Variable-sized vector of limited size; allocates all its memory in one go, requires a size of sizeof(size_t) + sizeof(pointer) + N * sizeof(data) More...
#include <limvector.hxx>
Public Types | |
typedef T | value_type |
Type of the contained object. | |
typedef T * | pointer |
Type of a pointer to the contained object. | |
typedef T & | reference |
Type of a reference to the contained object. | |
typedef const T & | const_reference |
Type of a reference to the contained object. | |
typedef const T * | const_pointer |
Type of a pointer to the contained object. | |
typedef pointer | iterator |
Define the iterator type. | |
typedef const_pointer | const_iterator |
Define the const iterator type. | |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
Define the reverse const iterator type. | |
typedef std::reverse_iterator< iterator > | reverse_iterator |
Define the reverse iterator type. | |
typedef std::random_access_iterator_tag | iterator_category |
Show random access is possible. | |
typedef size_t | size_type |
Size of the underlying thing. | |
typedef std::ptrdiff_t | difference_type |
Pointer difference. | |
Public Member Functions | |
limvector (size_t n, const T &defval) | |
constructor with default value for the data | |
limvector (size_t n=0) | |
constructor without default value for the data | |
limvector (const limvector< N, T > &other) | |
copy constructor | |
template<class InputIt > | |
limvector (InputIt first, InputIt last) | |
construct from iterators | |
~limvector () | |
destructor | |
operator pointer (void) | |
obtain a pointer directly to the data | |
operator const_pointer (void) const | |
obtain a const pointer directly to the data | |
iterator | begin () |
more-or-less stl-compatible iterator | |
iterator | end () |
more-or-less stl-compatible iterator | |
const_iterator | begin () const |
more-or-less stl-compatible iterator | |
const_iterator | end () const |
more-or-less stl-compatible iterator | |
size_t | size () const |
size of the vector | |
limvector< N, T > & | operator= (const limvector< N, T > &other) |
assignment operator | |
limvector< N, T > & | operator= (const T &val) |
assignment operator, to value type | |
bool | operator== (const limvector< N, T > &other) const |
equality test | |
bool | operator!= (const limvector< N, T > &other) const |
inequality test | |
template<typename idx_t > | |
const T & | operator[] (idx_t ii) const |
access elements of the vector. | |
template<typename idx_t > | |
T & | operator[] (idx_t ii) |
access elements of the vector. | |
void | resize (size_t s, const value_type &val=value_type()) |
forced resize of the vector | |
const T * | ptr () const |
access as const pointer | |
T * | ptr () |
access as pointer | |
void | push_back (const value_type &__x) |
push_back, but note the limit! | |
void | pop_back (const value_type &__x) |
pop_back, really inefficient! | |
reference | front () |
access first element | |
const_reference | front () const |
access first element | |
reference | back () |
access last element | |
const_reference | back () const |
access last element | |
Variable-sized vector of limited size; allocates all its memory in one go, requires a size of sizeof(size_t) + sizeof(pointer) + N * sizeof(data)
Implementing most stl-like interfaces
|
inline |
constructor with default value for the data
n | length of vector |
defval | default fill value |
constructor without default value for the data
n | length of vector |
|
inline |
access elements of the vector.
Note that indexing is checked
|
inline |
access elements of the vector.
Note that indexing is checked