2023-12-03 19:43:41 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
2023-09-17 22:13:42 +03:00
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <string.h>
|
2023-12-03 19:43:41 +03:00
|
|
|
#include <vector>
|
|
|
|
|
|
2023-09-17 22:13:42 +03:00
|
|
|
template <class T>
|
|
|
|
|
class Array {
|
2023-12-03 19:43:41 +03:00
|
|
|
private:
|
|
|
|
|
std::vector<T*> elements;
|
|
|
|
|
|
2023-09-17 22:13:42 +03:00
|
|
|
public:
|
2023-12-03 19:43:41 +03:00
|
|
|
Array() { }
|
|
|
|
|
|
|
|
|
|
virtual ~Array() {
|
|
|
|
|
for (auto& elem : elements)
|
|
|
|
|
delete elem;
|
|
|
|
|
elements.clear();
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
2023-12-03 19:43:41 +03:00
|
|
|
|
|
|
|
|
void add(T* new_line) {
|
|
|
|
|
elements.push_back(new_line);
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
2023-12-03 19:43:41 +03:00
|
|
|
|
|
|
|
|
long getLength() const {
|
|
|
|
|
return (long)elements.size();
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
2023-12-03 19:43:41 +03:00
|
|
|
|
|
|
|
|
T* get(long i) {
|
|
|
|
|
return elements[i];
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
2023-12-03 19:43:41 +03:00
|
|
|
|
|
|
|
|
const std::vector<T*>& getElements() const {
|
2023-09-17 22:13:42 +03:00
|
|
|
return elements;
|
|
|
|
|
}
|
|
|
|
|
};
|