1 /* 2 * htwg_array.h 3 * 4 * Stark vereinfachte Array-Klasse. 5 * 6 * Autor: H.Drachenfels 7 * Erstellt am: 13.12.2022 8 */
9 #ifndef HTWG_ARRAY_H
10 #define HTWG_ARRAY_H
11
12 #include <cstddef> // std::size_t
13
14 namespace htwg
15 {
16 template<typename T, std::size_t N>
17 class array
18 {
19 public:
20 T a[N];
21
22 // array() = default;
23 // ~array() = default;
24
25 // array(const array& v) = default;
26 // array& operator=(const array& v) = default;
27
28 // array(array&& v) = default;
29 // array& operator=(array&& v) = default;
30
31 std::size_t size() const
32 {
33 return N;
34 }
35
36 T& operator[](std::size_t i)
37 {
38 // Verbesserungsvorschlag: Index pruefen
39 return this->a[i];
40 }
41
42 const T& operator[](std::size_t i) const
43 {
44 // Verbesserungsvorschlag: Index pruefen
45 return this->a[i];
46 }
47
48 typedef T* iterator;
49 typedef const T* const_iterator;
50
51 iterator begin()
52 {
53 return &this->a[0];
54 }
55
56 iterator end()
57 {
58 return &this->a[N];
59 }
60
61 const_iterator begin() const
62 {
63 return &this->a[0];
64 }
65
66 const_iterator end() const
67 {
68 return &this->a[N];
69 }
70 };
71 }
72
73 #endif
74