Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //eMail: francescodero@outlook.it
- #pragma once
- #include <cstdlib>
- namespace dero
- {
- template <class t>
- class vector
- {
- protected:
- int size;
- int capacity;
- t * storage;
- public:
- vector();
- ~vector();
- void append(const t & elem);
- t& operator [] (int index);
- };
- }
- template <class t> dero::vector<t>::vector()
- // dero::vector default constructor
- // -> want no parameters
- // <- initializes the vector correctly
- {
- size = 0;
- capacity = 1;
- storage = (int*)malloc(sizeof(t));
- };
- template <class t> dero::vector<t>::~vector()
- // dero::vector default destructor
- // -> want no parameters
- // <- destroy the storage
- {
- size = 0;
- capacity = 1;
- delete [] storage;
- };
- template <class t> void dero::vector<t>::append(const t & elem)
- // dero::vector primary insertion method
- // -> want the element to append
- // <- append the element
- {
- size++;
- if ( capacity >= size )
- storage[(size-1)] = elem;
- else
- {
- capacity *= 2;
- auto x = realloc(storage,capacity*sizeof(t));
- storage[(size-1)] = elem;
- }
- };
- template <class t> t& dero::vector<t>::operator [] (int index)
- // dero::vector access operator
- // -> want the index
- // <- return a reference to the element in that position
- {
- return storage[index];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement