2024-06-10 10:16:58 +00:00
|
|
|
#include <iostream>
|
|
|
|
|
|
|
|
namespace myspace {
|
|
|
|
template <typename T>
|
|
|
|
class vector{
|
|
|
|
public:
|
|
|
|
vector(){}
|
|
|
|
vector(int _N, T _Val);
|
|
|
|
~vector();
|
|
|
|
T operator[] (int i);
|
|
|
|
void resize();
|
|
|
|
int size(){
|
|
|
|
return N;
|
|
|
|
}
|
|
|
|
;
|
|
|
|
protected:
|
2024-06-10 10:43:07 +00:00
|
|
|
T* data;
|
2024-06-10 10:16:58 +00:00
|
|
|
int N;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
vector<T>::vector(int _N, T _Val ):N(_N){
|
2024-06-10 10:43:07 +00:00
|
|
|
data = new T[N];
|
2024-06-10 10:16:58 +00:00
|
|
|
for (int i{0}; i < N; i++){
|
2024-06-10 10:43:07 +00:00
|
|
|
data[i] = T(_Val);
|
2024-06-10 10:16:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
vector<T>::~vector(){
|
|
|
|
delete [] data;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <typename T>
|
|
|
|
T vector<T>::operator[] (int i){
|
|
|
|
try {
|
|
|
|
if (i>=0 && i < N){
|
2024-06-10 10:43:07 +00:00
|
|
|
return data[i];
|
2024-06-10 10:16:58 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
throw(i);
|
|
|
|
}
|
|
|
|
catch(int i){
|
|
|
|
std::cout << "out of range, try to access "<< i << " out of " << N <<"\n";
|
|
|
|
exit(-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// end of namespace ///
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|