Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename A>
- class Vector {
- public:
- Vector(size_t capacity=1) {
- m_elements = new A*[capacity];
- m_capacity = capacity;
- m_size = 0;
- }
- ~Vector() {
- for (int i=0; i < m_size; ++i) {
- delete m_elements[i];
- }
- delete m_elements;
- }
- bool pushBack(const A &elem) {
- if (m_size == m_capacity) {
- m_capacity *= 2;
- m_elements = (A**) realloc(m_elements, (m_capacity + 1) * sizeof(A*));
- }
- m_elements[m_size++] = new A(elem);
- }
- Vector(const Vector &other) {
- m_size = other.m_size;
- m_capacity = other.m_capacity;
- m_elements = new A*[m_capacity];
- for (int i=0; i < m_size; ++i) {
- m_elements[i] = new A(*(other.m_elements[i]));
- }
- }
- Vector &operator=(const Vector &other) {
- for (int i=0; i < m_size; ++i) {
- delete m_elements[i];
- }
- delete m_elements;
- m_size = other.m_size;
- m_capacity = other.m_capacity;
- m_elements = new A*[m_capacity];
- for (int i=0; i < m_size; ++i) {
- m_elements[i] = new A(*(other.m_elements[i]));
- }
- return *this;
- }
- public:
- size_t m_size;
- size_t m_capacity;
- A **m_elements;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement