fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <list>
  5.  
  6. template <typename TContainer>
  7. TContainer fill(typename TContainer::value_type start,
  8. typename TContainer::value_type step,
  9. typename TContainer::value_type end) {
  10. size_t size = static_cast<size_t>((end - start)/step + 1);
  11. TContainer output(size);
  12. std::generate(std::begin(output), std::end(output),
  13. [&start, step]() {
  14. auto temp = start; start += step; return temp;
  15. }
  16. );
  17. return output;
  18. }
  19.  
  20.  
  21.  
  22. int main() {
  23.  
  24.  
  25. auto vec = fill<std::vector<int>>(0, 2, 10);
  26. std::cout << "vec: ";
  27. for (auto i : vec) {
  28. std::cout << i << ", ";
  29. }
  30. std::cout << std::endl;
  31.  
  32. auto list = fill<std::list<float>>(1, 0.3, 5);
  33. std::cout << "list: ";
  34. for (auto f : list) {
  35. std::cout << f << ", ";
  36. }
  37. std::cout << std::endl;
  38.  
  39. // your code goes here
  40. return 0;
  41. }
Success #stdin #stdout 0s 4548KB
stdin
Standard input is empty
stdout
vec: 0, 2, 4, 6, 8, 10, 
list: 1, 1.3, 1.6, 1.9, 2.2, 2.5, 2.8, 3.1, 3.4, 3.7, 4, 4.3, 4.6, 4.9,