Как напечатать размерности многомерного массива на C++
То есть, по массиву вида
int a[2][3][4][5];
программа должна напечатать
2x3x4x5
без ограничений на количество размерностей.
Поможет вот этот небольшой шаблончик (проверенный в консоли Visual Studio 2015) и рекурсия:
#include <iostream> template <typename T, size_t N> void printDimensions(const T(&a)[N]) { std::cout << N; } template <typename T, size_t N, size_t M> void printDimensions(const T(&a)[N][M]) { std::cout << N << "x"; printDimensions(a[0]); } int main() { int a[2][3][4][5]; printDimensions(a); std::cin.get(); return 0; }
11.11.2018, 12:37 [1428 просмотров]