fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4.  
  5. std::vector<std::string> filtered_files(const std::vector<std::string>& files, const std::vector<std::string>& extensions)
  6. {
  7. std::vector<std::string> re;
  8.  
  9. for(const std::string &f : files)
  10. {
  11. if (std::find_if(extensions.begin(), extensions.end(),
  12. [&](const std::string &ex){
  13. return (f.size() >= ex.size()) && (f.compare(f.size()-ex.size(), ex.size(), ex) == 0);
  14. }
  15. ) != extensions.end())
  16. {
  17. re.push_back(f);
  18. }
  19. }
  20.  
  21. return re;
  22. }
  23.  
  24. int main()
  25. {
  26. std::vector<std::string> v{"main.cpp","main.c","main.py"};
  27. std::vector<std::string> re = filtered_files(v,{".c",".cpp"});
  28. for(const std::string s :re) {
  29. std::cout << s << '\n';
  30. }
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 4364KB
stdin
Standard input is empty
stdout
main.cpp
main.c