fork(1) download
  1. #include <vector>
  2. #include <iostream>
  3. #include <algorithm>
  4.  
  5. template<class T>
  6. int find_max(std::vector<std::vector<T> > target_array);
  7.  
  8. int find_max(std::vector<int> target_array) {
  9. using namespace std;
  10.  
  11. return *max_element(
  12. target_array.begin(),
  13. target_array.end());
  14. }
  15.  
  16. template<class T>
  17. int find_max(std::vector<std::vector<T> > target_array) {
  18. using namespace std;
  19.  
  20. vector<int> reduced(target_array.size());
  21.  
  22. transform(
  23. target_array.begin(),
  24. target_array.end(),
  25. reduced.begin(),
  26. [](std::vector<T> v){ return find_max(v); });
  27.  
  28. return *max_element(
  29. reduced.begin(),
  30. reduced.end());
  31. }
  32.  
  33.  
  34. int main() {
  35. using namespace std;
  36.  
  37. vector<int> array_1d = {1,3,4};
  38. vector<vector<int>> array_2d = {{1,3},{3,5},{6,4}};
  39. vector<vector<vector<int>>> array_3d = {{{1,3},{2,4}},{{6,7}}};
  40.  
  41. cout << "Max in 1d array: " << find_max(array_1d) << endl;
  42. cout << "Max in 2d array: " << find_max(array_2d) << endl;
  43. cout << "Max in 3d array: " << find_max(array_3d) << endl;
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0s 3480KB
stdin
Standard input is empty
stdout
Max in 1d array: 4
Max in 2d array: 6
Max in 3d array: 7