I am trying to implement a dynamic array with new because the standard std libraries do not. here is my code.
template <class T1, class T2, class T3>
auto auto_vector(T1& _Size, T2& _Size2, T3& _Size3) {
auto result = new int64_t **[_Size3];
for (ptrdiff_t i = 0; i < _Size3; ++i) {
result[i] = new int64_t *[_Size2];
for (ptrdiff_t k = 0; k < _Size2; ++k) {
result[i][k] = new int64_t [_Size]{};
}
}
return result;
}
this is how i delete my array
template <class T1, class T2, class T3, class T4>
void del_vector(T4& _Del, T1& _Size, T2& _Size2, T3& _Size3) {
for (ptrdiff_t i = 0; i < _Size3; ++i) {
for (ptrdiff_t k = 0; k < _Size2; ++k) {
delete _Del[i][k];
}
delete _Del[i];
}
delete _Del;
}
I can use it to create a multidimensional array with three tabs. like so
auto tor3 = auto_vector(_Size, _Size2, _Size3);
But I also want to create other arrays with two tabs or four, or all of a sudden I need to create a 10x multi-dimensional array. If suddenly I lose my mind like so
int _Size, _Size2, _Size3, _Size4, _Size5;
_Size = _Size2 = _Size3 =_Size4 = _Size5 = 4;
auto tor2 = auto_vector(_Size, _Size2);
auto tor1 = auto_vector(_Size);
auto tor10 = auto_vector(_Size,_Size2,_Size3,_Size4,_Size5);
How can I make one function from my function that can do all this, and is it possible to do this?
cout << " ---------TEST---------- " << endl;
for (ptrdiff_t i = 0; i < _Size3; ++i) {
for (ptrdiff_t k = 0; k < _Size2; ++k) {
for (ptrdiff_t j = 0; j < _Size; ++j) {
cout << _Tor[i][k][j] << " ";
}
cout << endl;
}
cout << endl;
}
cout << " ---------TEST---------- " << endl;