18 #ifndef RAUL_ARRAY_HPP
19 #define RAUL_ARRAY_HPP
24 #include "Deletable.hpp"
39 Array(
size_t size = 0) : _size(size), _top(0), _elems(NULL) {
44 Array(
size_t size, T initial_value) : _size(size), _top(0), _elems(NULL) {
47 for (
size_t i=0; i < size; ++i)
48 _elems[i] = initial_value;
52 Array(
size_t size,
const Array<T>& contents) : _size(size), _top(size+1) {
54 if (size <= contents.size())
55 memcpy(_elems, contents._elems, size *
sizeof(T));
57 memcpy(_elems, contents._elems, contents.size() *
sizeof(T));
64 void alloc(
size_t num_elems) {
65 assert(num_elems > 0);
71 _elems =
new T[num_elems];
74 void alloc(
size_t num_elems, T initial_value) {
75 assert(num_elems > 0);
81 _elems =
new T[num_elems];
82 for (
size_t i=0; i < _size; ++i)
83 _elems[i] = initial_value;
91 inline size_t size()
const {
return _size; }
93 inline T& operator[](
size_t i)
const { assert(i < _size);
return _elems[i]; }
95 inline T& at(
size_t i)
const { assert(i < _size);
return _elems[i]; }
106 #endif // RAUL_ARRAY_HPP
Something with a virtual destructor.
Definition: Deletable.hpp:28
An array.
Definition: Array.hpp:36