Marcus Lee / LinearArray
Committer:
UHSLMarcus
Date:
Wed Oct 05 09:35:55 2016 +0000
Revision:
2:92576523c23e
Parent:
1:49758f1e1317
Child:
3:8e9f85814809
Child:
9:68d882e457c5
updated size()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UHSLMarcus 1:49758f1e1317 1
UHSLMarcus 1:49758f1e1317 2
UHSLMarcus 1:49758f1e1317 3 template <class type>
UHSLMarcus 2:92576523c23e 4 LinearArray<type>::LinearArray(int size): elem_count(0), array_size(size) {
UHSLMarcus 1:49758f1e1317 5 array = new type[size];
UHSLMarcus 1:49758f1e1317 6 }
UHSLMarcus 1:49758f1e1317 7
UHSLMarcus 1:49758f1e1317 8 template <class type>
UHSLMarcus 1:49758f1e1317 9 LinearArray<type>::~LinearArray() {
UHSLMarcus 1:49758f1e1317 10 delete[] array;
UHSLMarcus 1:49758f1e1317 11 }
UHSLMarcus 1:49758f1e1317 12
UHSLMarcus 1:49758f1e1317 13 template <class type>
UHSLMarcus 1:49758f1e1317 14 int LinearArray<type>::add(type item) {
UHSLMarcus 2:92576523c23e 15
UHSLMarcus 1:49758f1e1317 16 int ret = -1;
UHSLMarcus 1:49758f1e1317 17 if (hasSpace()) {
UHSLMarcus 1:49758f1e1317 18 array[elem_count] = item;
UHSLMarcus 1:49758f1e1317 19 ret = elem_count++;
UHSLMarcus 1:49758f1e1317 20 }
UHSLMarcus 1:49758f1e1317 21
UHSLMarcus 1:49758f1e1317 22 return ret;
UHSLMarcus 1:49758f1e1317 23 }
UHSLMarcus 1:49758f1e1317 24
UHSLMarcus 1:49758f1e1317 25 template <class type>
UHSLMarcus 1:49758f1e1317 26 void LinearArray<type>::remove(int index) {
UHSLMarcus 1:49758f1e1317 27
UHSLMarcus 1:49758f1e1317 28 if (index < elem_count) {
UHSLMarcus 1:49758f1e1317 29 for (int i = index; i < elem_count-1; i++) {
UHSLMarcus 1:49758f1e1317 30 array[i] = array[i+1];
UHSLMarcus 1:49758f1e1317 31 }
UHSLMarcus 1:49758f1e1317 32
UHSLMarcus 1:49758f1e1317 33 elem_count--;
UHSLMarcus 1:49758f1e1317 34 }
UHSLMarcus 1:49758f1e1317 35
UHSLMarcus 1:49758f1e1317 36 }
UHSLMarcus 1:49758f1e1317 37
UHSLMarcus 1:49758f1e1317 38 template <class type>
UHSLMarcus 1:49758f1e1317 39 int LinearArray<type>::size() {
UHSLMarcus 2:92576523c23e 40 return array_size;
UHSLMarcus 1:49758f1e1317 41 }
UHSLMarcus 1:49758f1e1317 42
UHSLMarcus 1:49758f1e1317 43 template <class type>
UHSLMarcus 1:49758f1e1317 44 int LinearArray<type>::elements() {
UHSLMarcus 1:49758f1e1317 45 return elem_count;
UHSLMarcus 1:49758f1e1317 46 }
UHSLMarcus 1:49758f1e1317 47
UHSLMarcus 1:49758f1e1317 48 template <class type>
UHSLMarcus 1:49758f1e1317 49 bool LinearArray<type>::hasSpace() {
UHSLMarcus 2:92576523c23e 50 return elem_count < array_size;
UHSLMarcus 1:49758f1e1317 51 }
UHSLMarcus 1:49758f1e1317 52
UHSLMarcus 1:49758f1e1317 53 template <class type>
UHSLMarcus 1:49758f1e1317 54 type& LinearArray<type>::operator[](int index) {
UHSLMarcus 1:49758f1e1317 55 if (index < elem_count) {
UHSLMarcus 1:49758f1e1317 56 return array[index];
UHSLMarcus 1:49758f1e1317 57 }
UHSLMarcus 1:49758f1e1317 58 return;
UHSLMarcus 1:49758f1e1317 59 }