fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <list>
  4. #include <iterator>
  5. #include <algorithm>
  6.  
  7. template<typename It>
  8. void output_op(It it){
  9. std::copy(it,it + 5,std::ostream_iterator<int>(std::cout));
  10. }
  11. template<typename It>
  12. void output_adv(It it){
  13. //auto end = std::next(it,5)も可
  14. auto end = it;
  15. std::advance(end,5);
  16.  
  17. std::copy(it,end,std::ostream_iterator<int>(std::cout));
  18. }
  19.  
  20. int main() {
  21. std::vector<int> v = {1,2,3,4,5,6,7,8,9,10};
  22. std::list<int> l = {1,2,3,4,5,6,7,8,9,10};
  23.  
  24. output_op(v.begin());
  25. //output_op(l.begin()); //Compile Error
  26.  
  27. output_adv(v.begin());
  28. output_adv(l.begin());
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
123451234512345