fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <numeric>
  4.  
  5. int p( int k, const std::vector<int>& dims )
  6. {
  7. int ret = 1;
  8. for( int i = dims.size()-1; i>k; --i )
  9. {
  10. ret *= dims[i];
  11. }
  12. return ret;
  13. }
  14.  
  15. void printArray( const std::vector<int>& a, const std::vector<int>& dims )
  16. {
  17. for( int i=0; i<a.size(); ++i )
  18. {
  19. for( int j=0; j<dims.size(); ++j )
  20. {
  21. std::cout << "[" << (i / p(j,dims)) % dims[j] << "]";
  22. }
  23.  
  24. std::cout << " = " << a[i] << std::endl;
  25. }
  26.  
  27. std::cout << "---------\n";
  28. }
  29.  
  30.  
  31. int main() {
  32.  
  33. std::vector<int> v(24);
  34.  
  35. std::iota( v.begin(), v.end(), 0 );
  36.  
  37. std::vector<int> s1 = {24};
  38. printArray( v, s1 );
  39.  
  40. std::vector<int> s2 = {4,6};
  41. printArray( v, s2 );
  42.  
  43. std::vector<int> s3 = {2,3,4};
  44. printArray( v, s3 );
  45.  
  46. std::vector<int> s4 = {3,2,2,2};
  47. printArray( v, s4 );
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0s 3032KB
stdin
Standard input is empty
stdout
[0] = 0
[1] = 1
[2] = 2
[3] = 3
[4] = 4
[5] = 5
[6] = 6
[7] = 7
[8] = 8
[9] = 9
[10] = 10
[11] = 11
[12] = 12
[13] = 13
[14] = 14
[15] = 15
[16] = 16
[17] = 17
[18] = 18
[19] = 19
[20] = 20
[21] = 21
[22] = 22
[23] = 23
---------
[0][0] = 0
[0][1] = 1
[0][2] = 2
[0][3] = 3
[0][4] = 4
[0][5] = 5
[1][0] = 6
[1][1] = 7
[1][2] = 8
[1][3] = 9
[1][4] = 10
[1][5] = 11
[2][0] = 12
[2][1] = 13
[2][2] = 14
[2][3] = 15
[2][4] = 16
[2][5] = 17
[3][0] = 18
[3][1] = 19
[3][2] = 20
[3][3] = 21
[3][4] = 22
[3][5] = 23
---------
[0][0][0] = 0
[0][0][1] = 1
[0][0][2] = 2
[0][0][3] = 3
[0][1][0] = 4
[0][1][1] = 5
[0][1][2] = 6
[0][1][3] = 7
[0][2][0] = 8
[0][2][1] = 9
[0][2][2] = 10
[0][2][3] = 11
[1][0][0] = 12
[1][0][1] = 13
[1][0][2] = 14
[1][0][3] = 15
[1][1][0] = 16
[1][1][1] = 17
[1][1][2] = 18
[1][1][3] = 19
[1][2][0] = 20
[1][2][1] = 21
[1][2][2] = 22
[1][2][3] = 23
---------
[0][0][0][0] = 0
[0][0][0][1] = 1
[0][0][1][0] = 2
[0][0][1][1] = 3
[0][1][0][0] = 4
[0][1][0][1] = 5
[0][1][1][0] = 6
[0][1][1][1] = 7
[1][0][0][0] = 8
[1][0][0][1] = 9
[1][0][1][0] = 10
[1][0][1][1] = 11
[1][1][0][0] = 12
[1][1][0][1] = 13
[1][1][1][0] = 14
[1][1][1][1] = 15
[2][0][0][0] = 16
[2][0][0][1] = 17
[2][0][1][0] = 18
[2][0][1][1] = 19
[2][1][0][0] = 20
[2][1][0][1] = 21
[2][1][1][0] = 22
[2][1][1][1] = 23
---------