1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <iostream> #include <valarray> template<typename T> class Matrix { std::valarray<T> data; size_t columns; public: Matrix(size_t rows, size_t columns) : data(rows*columns), columns(columns) {} T operator()(size_t row, size_t col) const { return data[row + columns*col]; } T& operator()(size_t row, size_t col) { return data[row + columns*col]; } Matrix& operator+=(const Matrix& other) { data += other.data; return *this; } }; template<typename T> Matrix<T> operator+(Matrix<T> lhs, const Matrix<T>& rhs) { return lhs += rhs; } int main() { Matrix<int> m1(2,2); m1(0,0) = 1; m1(0,1) = 2; m1(1,0) = 3; m1(1,1) = 4; Matrix<int> m2 = m1; Matrix<int> m3 = m1 + m2; std::cout << m3(0,0) << ' ' << m3(0,1) << '\n' << m3(1,0) << ' ' << m3(1,1) << '\n'; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmFsYXJyYXk+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpjbGFzcyBNYXRyaXggewogICAgc3RkOjp2YWxhcnJheTxUPiBkYXRhOwogICAgc2l6ZV90IGNvbHVtbnM7CiBwdWJsaWM6CiAgICBNYXRyaXgoc2l6ZV90IHJvd3MsIHNpemVfdCBjb2x1bW5zKQogICAgOiBkYXRhKHJvd3MqY29sdW1ucyksIGNvbHVtbnMoY29sdW1ucykge30KCiAgICBUIG9wZXJhdG9yKCkoc2l6ZV90IHJvdywgc2l6ZV90IGNvbCkgY29uc3QKICAgIHsKICAgICAgICByZXR1cm4gZGF0YVtyb3cgKyBjb2x1bW5zKmNvbF07CiAgICB9CgogICAgVCYgb3BlcmF0b3IoKShzaXplX3Qgcm93LCBzaXplX3QgY29sKQogICAgewogICAgICAgIHJldHVybiBkYXRhW3JvdyArIGNvbHVtbnMqY29sXTsKICAgIH0KCiAgICBNYXRyaXgmIG9wZXJhdG9yKz0oY29uc3QgTWF0cml4JiBvdGhlcikKICAgIHsKICAgICAgICBkYXRhICs9IG90aGVyLmRhdGE7CiAgICAgICAgcmV0dXJuICp0aGlzOwogICAgfQp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4KTWF0cml4PFQ+IG9wZXJhdG9yKyhNYXRyaXg8VD4gbGhzLCBjb25zdCBNYXRyaXg8VD4mIHJocykKewogICAgcmV0dXJuIGxocyArPSByaHM7Cn0KCmludCBtYWluKCkKewogICAgTWF0cml4PGludD4gbTEoMiwyKTsKICAgIG0xKDAsMCkgPSAxOyBtMSgwLDEpID0gMjsKICAgIG0xKDEsMCkgPSAzOyBtMSgxLDEpID0gNDsKCiAgICBNYXRyaXg8aW50PiBtMiA9IG0xOwogICAgTWF0cml4PGludD4gbTMgPSBtMSArIG0yOwoKICAgIHN0ZDo6Y291dCA8PCBtMygwLDApIDw8ICcgJyA8PCBtMygwLDEpIDw8ICdcbicKICAgICAgICAgICAgICA8PCBtMygxLDApIDw8ICcgJyA8PCBtMygxLDEpIDw8ICdcbic7Cn0K
-
upload with new input
-
result: Success time: 0.02s memory: 2856 kB returned value: 0
2 4 6 8


