fork download
  1. #include <vector>
  2. #include <algorithm>
  3. #include <functional>
  4. #include <iostream>
  5.  
  6. template<typename T>
  7. std::vector<T> keep(
  8. const std::vector<T> &original,
  9. std::function<bool(const T&)> useful)
  10. {
  11. std::vector<T> out;
  12. for(T item:original)
  13. {
  14. if(useful(item))
  15. out.push_back(item);
  16. }
  17. return out;
  18. }
  19.  
  20. int main()
  21. {
  22. std::vector<int> a={4,6,2,-5,3,-8,13,-11,27};
  23. a=keep(a,std::function<bool(const int&)> ( [](const int& x)->bool{return x>0;}));
  24.  
  25. for(int y:a)
  26. {
  27. std::cout<<y<<std::endl;
  28. }
  29. return 0;
  30. }
Success #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
4
6
2
3
13
27