Skip to content

Instantly share code, notes, and snippets.

@facontidavide
Created January 31, 2018 13:49
Show Gist options
  • Save facontidavide/f695f1f276cd0f1a8a150e7475c59226 to your computer and use it in GitHub Desktop.
Save facontidavide/f695f1f276cd0f1a8a150e7475c59226 to your computer and use it in GitHub Desktop.
std::vector skeleton
// implement std::vector
template <typename T>
class Vector
{
public:
// to keep it simpler, iterators are just T*
typedef T* iterator;
typedef T* reverse_iterator;
Vector(size_t initial_size = 0);
~Vector();
size_t size() const;
size_t capacity() const;
T& at(size_t index);
T& operator[](size_t index);
iterator begin();
iterator end();
iterator rbegin();
iterator rend();
T& front();
T& back();
bool empty() const;
void push_back(const T& value );
void pop_back();
void clear();
void resize (size_t new_size);
void reserve (size_t new_size);
iterator insert( iterator pos, const T& value );
iterator erase( iterator pos );
iterator erase( iterator first, iterator last );
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment