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
|
|
|
|
2026-02-24 14:41:50 +03:00
|
|
|
int getLength() const {
|
|
|
|
|
return (int)elements.size();
|
2023-09-17 22:13:42 +03:00
|
|
|
}
|
2023-12-03 19:43:41 +03:00
|
|
|
|
2026-02-24 14:41:50 +03:00
|
|
|
T* get(int i) {
|
2023-12-03 19:43:41 +03:00
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
};
|