HEBOCON machine

Dependencies:   mbed Motorfader Servo WT2003M03

Committer:
abanum
Date:
Mon Jul 29 05:51:31 2019 +0000
Revision:
1:312b63cf250e
Parent:
0:a30ec7d94c3a
first pubrish

Who changed what in which revision?

UserRevisionLine numberNew contents of line
abanum 0:a30ec7d94c3a 1 #pragma once
abanum 0:a30ec7d94c3a 2
abanum 0:a30ec7d94c3a 3 template<class T>
abanum 0:a30ec7d94c3a 4 class myvector {
abanum 0:a30ec7d94c3a 5 public:
abanum 0:a30ec7d94c3a 6 myvector() {
abanum 0:a30ec7d94c3a 7 m_size = 0;
abanum 0:a30ec7d94c3a 8 m_buf = NULL;
abanum 0:a30ec7d94c3a 9 }
abanum 0:a30ec7d94c3a 10 ~myvector() {
abanum 0:a30ec7d94c3a 11 if (m_buf) {
abanum 0:a30ec7d94c3a 12 delete[] m_buf;
abanum 0:a30ec7d94c3a 13 }
abanum 0:a30ec7d94c3a 14 }
abanum 0:a30ec7d94c3a 15 void push_back(T v) {
abanum 0:a30ec7d94c3a 16 T* new_buf = new T[m_size+1];
abanum 0:a30ec7d94c3a 17 if (m_size > 0) {
abanum 0:a30ec7d94c3a 18 for(int i = 0; i < m_size; i++) {
abanum 0:a30ec7d94c3a 19 new_buf[i] = m_buf[i];
abanum 0:a30ec7d94c3a 20 }
abanum 0:a30ec7d94c3a 21 delete[] m_buf;
abanum 0:a30ec7d94c3a 22 }
abanum 0:a30ec7d94c3a 23 m_buf = new_buf;
abanum 0:a30ec7d94c3a 24 m_buf[m_size++] = v;
abanum 0:a30ec7d94c3a 25 }
abanum 0:a30ec7d94c3a 26 T& operator[](const int index) {
abanum 0:a30ec7d94c3a 27 return m_buf[index];
abanum 0:a30ec7d94c3a 28 }
abanum 0:a30ec7d94c3a 29 int size() { return m_size; }
abanum 0:a30ec7d94c3a 30
abanum 0:a30ec7d94c3a 31 private:
abanum 0:a30ec7d94c3a 32 int m_size;
abanum 0:a30ec7d94c3a 33 T *m_buf;
abanum 0:a30ec7d94c3a 34 };
abanum 0:a30ec7d94c3a 35