fork download
  1. #include <array>
  2. #include <vector>
  3. #include <iostream>
  4.  
  5. template <typename T>
  6. void printAll(const T& v)
  7. {
  8. for (const typename T::value_type& value : v)
  9. std::cout << value << std::endl;
  10. }
  11.  
  12. template <typename T>
  13. T doubleData(const T& v)
  14. {
  15. T data = v;
  16. for (typename T::value_type& value : data)
  17. value *= 2;
  18.  
  19. return data;
  20. }
  21.  
  22. int main()
  23. {
  24. std::array<int, 10> a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  25. auto a2 = doubleData(a);
  26. printAll(a2);
  27.  
  28. std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  29. auto v2 = doubleData(v);
  30. printAll(v2);
  31. }
Success #stdin #stdout 0s 3028KB
stdin
Standard input is empty
stdout
2
4
6
8
10
12
14
16
18
20
2
4
6
8
10
12
14
16
18
20