#include <iostream>
template <typename T, size_t N, size_t M>
bool compare_array(const T (&arr1)[N][M], const T (&arr2)[N][M])
{
for (size_t n = 0; n < N; ++n) {
for (size_t m = 0; m < M; ++m) {
if (arr1[n][m] != arr2[n][m]) {
return false;
}
}
}
return true;
}
int main(int argc, char *argv[])
{
int a[3][2] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
int b[3][2] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
std::cout << std::boolalpha;
std::cout << compare_array(a, b) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHNpemVfdCBOLCBzaXplX3QgTT4KYm9vbCBjb21wYXJlX2FycmF5KGNvbnN0IFQgKCZhcnIxKVtOXVtNXSwgY29uc3QgVCAoJmFycjIpW05dW01dKSAKewogICAgZm9yIChzaXplX3QgbiA9IDA7IG4gPCBOOyArK24pIHsKCQlmb3IgKHNpemVfdCBtID0gMDsgbSA8IE07ICsrbSkgewoJCQlpZiAoYXJyMVtuXVttXSAhPSBhcnIyW25dW21dKSB7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9Cgl9CgkKCXJldHVybiB0cnVlOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CglpbnQgYVszXVsyXSA9IHsgeyAxLCAyIH0sIHsgMywgNCB9LCB7IDUsIDYgfSB9OwoJaW50IGJbM11bMl0gPSB7IHsgMSwgMiB9LCB7IDMsIDQgfSwgeyA1LCA2IH0gfTsKCQoJc3RkOjpjb3V0IDw8IHN0ZDo6Ym9vbGFscGhhOwoJc3RkOjpjb3V0IDw8IGNvbXBhcmVfYXJyYXkoYSwgYikgPDwgc3RkOjplbmRsOwoJCiAgICByZXR1cm4gMDsKfQ==