Created
January 31, 2018 13:49
-
-
Save facontidavide/f695f1f276cd0f1a8a150e7475c59226 to your computer and use it in GitHub Desktop.
std::vector skeleton
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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