fork download
  1. #include <vector>
  2. #include <iostream>
  3. #include <algorithm>
  4. #include <iterator>
  5.  
  6. template <typename Containers>
  7. std::vector<typename Containers::value_type::value_type>
  8. reduce_minelement(const Containers& containers)
  9. {
  10. std::vector<typename Containers::value_type::value_type> result;
  11. result.reserve(containers.size()); // pre-allocate
  12.  
  13. for (auto it=containers.begin(); it!=containers.end(); ++it)
  14. result.push_back(*std::max_element(it->begin(), it->end()));
  15.  
  16. return result;
  17. }
  18.  
  19. static const std::vector<std::vector<int> > data = {
  20. { 52, 1, 93, 74 },
  21. { 2, 18, 67, 77 },
  22. { 85, 35, -4 },
  23. { 48 },
  24. { 68, 18, 91, 0 },
  25. };
  26.  
  27. int main()
  28. {
  29. auto reduced = reduce_minelement(data);
  30. std::copy(reduced.begin(), reduced.end(), std::ostream_iterator<int>(std::cout, ", "));
  31.  
  32. return 0;
  33. }
  34.  
  35.  
  36.  
Success #stdin #stdout 0s 2964KB
stdin
Standard input is empty
stdout
93, 77, 85, 48, 91,