#include <iostream>
#include <vector>
template <class T>
class Vector {
public:
unsigned int rows;
unsigned int cols;
T** elements;
Vector(unsigned int, unsigned int);
~Vector();
};
template <class T>
Vector<T>::Vector(unsigned int rows, unsigned int cols) {
this->rows = rows;
this->cols = cols;
this->elements = new T*[this->rows];
for (int i = 0; i < this->rows; i++) {
this->elements[i] = new T[this->cols];
}
}
template <class T>
Vector<T>::~Vector() {
for(int i=0; i<this->rows;++i)
delete[] this->elements[i];
delete[] this->elements;
};
int main()
{
Vector<int> obj(2,2);
obj.elements[0][0] = 1;
obj.elements[0][1] = 2;
obj.elements[1][0] = 3;
obj.elements[1][1] = 4;
std::cout << obj.elements[0][0] << " " << obj.elements[0][1] << std::endl;
std::cout << obj.elements[1][0] << " " << obj.elements[1][1] << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGUgPGNsYXNzIFQ+IApjbGFzcyBWZWN0b3IgewogICAgcHVibGljOgogICAgICAgIHVuc2lnbmVkIGludCByb3dzOwogICAgICAgIHVuc2lnbmVkIGludCBjb2xzOwogICAgICAgIFQqKiBlbGVtZW50czsKICAgICAgICBWZWN0b3IodW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOwogICAgICAgIH5WZWN0b3IoKTsKfTsKCnRlbXBsYXRlIDxjbGFzcyBUPgpWZWN0b3I8VD46OlZlY3Rvcih1bnNpZ25lZCBpbnQgcm93cywgdW5zaWduZWQgaW50IGNvbHMpIHsKICAgIHRoaXMtPnJvd3MgPSByb3dzOwogICAgdGhpcy0+Y29scyA9IGNvbHM7CgogICAgdGhpcy0+ZWxlbWVudHMgPSBuZXcgVCpbdGhpcy0+cm93c107CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHRoaXMtPnJvd3M7IGkrKykgewogICAgICAgIHRoaXMtPmVsZW1lbnRzW2ldID0gbmV3IFRbdGhpcy0+Y29sc107CiAgICB9Cn0KCnRlbXBsYXRlIDxjbGFzcyBUPgpWZWN0b3I8VD46On5WZWN0b3IoKSB7CiAgICBmb3IoaW50IGk9MDsgaTx0aGlzLT5yb3dzOysraSkKICAgICAgICBkZWxldGVbXSB0aGlzLT5lbGVtZW50c1tpXTsKICAgIGRlbGV0ZVtdIHRoaXMtPmVsZW1lbnRzOwp9OwoKCmludCBtYWluKCkKewoJVmVjdG9yPGludD4gb2JqKDIsMik7CiAgICBvYmouZWxlbWVudHNbMF1bMF0gPSAxOwogICAgb2JqLmVsZW1lbnRzWzBdWzFdID0gMjsKICAgIG9iai5lbGVtZW50c1sxXVswXSA9IDM7CiAgICBvYmouZWxlbWVudHNbMV1bMV0gPSA0OwogICAgCiAgICBzdGQ6OmNvdXQgPDwgb2JqLmVsZW1lbnRzWzBdWzBdIDw8ICIgIiA8PCBvYmouZWxlbWVudHNbMF1bMV0gPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8IG9iai5lbGVtZW50c1sxXVswXSA8PCAiICIgPDwgb2JqLmVsZW1lbnRzWzFdWzFdIDw8IHN0ZDo6ZW5kbDsKCglyZXR1cm4gMDsKfQo=