fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. template<class T>
  6. struct array_2d : public std::vector<std::vector<T>> {
  7. array_2d(size_t rows, size_t cols) : std::vector<std::vector<T>>(rows, std::vector<T>(cols)) {}
  8. };
  9.  
  10.  
  11. int main() {
  12. size_t rows = 5, cols = 10;
  13.  
  14. array_2d<int> a2d(rows, cols);
  15.  
  16. // fill 2d-matrix
  17. int counter = 0;
  18. for(auto &c: a2d) {
  19. for(auto &r: c) {
  20. r = ++counter;
  21. std::cout << r << ", ";
  22. }
  23. std::cout << std::endl;
  24. }
  25. std::cout << std::endl;
  26.  
  27. std::vector<int> min_row;
  28. std::vector<int> min_col = a2d[0];
  29.  
  30. // min for each - row
  31. for(auto &c: a2d)
  32. min_row.push_back( *std::min_element(c.begin(), c.end()) );
  33.  
  34. // min for each - col
  35. for(auto &c: a2d)
  36. std::transform(c.begin(), c.end(), min_col.begin(), min_col.begin(),
  37. [](auto v1, auto v2) { return std::min(v1, v2); } );
  38.  
  39. for(auto &mr: min_row) std::cout << mr << ", ";
  40. std::cout << std::endl;
  41.  
  42. for(auto &mc: min_col) std::cout << mc << ", ";
  43. std::cout << std::endl;
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0s 3416KB
stdin
Standard input is empty
stdout
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, 48, 49, 50, 

1, 11, 21, 31, 41, 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,