fork download
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. class MultiArray
  5. {
  6. public:
  7. explicit MultiArray(T* arr, int sizex, int sizey) : data(arr), sizey(sizey) {}
  8.  
  9. const T* operator [] (int x) const { return &data[x * sizey]; }
  10. T* operator [] (int x) { return &data[x * sizey]; }
  11.  
  12. private:
  13. T* data;
  14. int sizey;
  15. };
  16.  
  17. int main()
  18. {
  19. int arr[12] = {
  20. 1, 2, 3, 4,
  21. 5, 6, 7, 8,
  22. 9, 10, 11, 12,
  23. };
  24.  
  25. MultiArray<int> m(arr, 3, 4);
  26.  
  27. for (int i = 0; i != 3; ++i) {
  28. for (int j = 0; j != 4; ++j) {
  29. std::cout << m[i][j] << " ";
  30. }
  31. std::cout << std::endl;
  32. }
  33.  
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
1 2 3 4 
5 6 7 8 
9 10 11 12