Advertisement
Art_Uspen

Untitled

Mar 30th, 2020
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. #include<iterator>
  5. using namespace std;
  6. template <typename RandomIt>
  7. pair<RandomIt, RandomIt> FindStartsWith(
  8. RandomIt range_begin, RandomIt range_end,
  9. char prefix) {
  10. pair<RandomIt, RandomIt>p;
  11. auto research = binary_search(range_begin, range_end,
  12. [prefix](const string& str) {
  13. return str[0] == prefix; });
  14.  
  15. if (research == false) {
  16. auto position = upper_bound(range_begin, range_end,
  17. [prefix](const string& str) {
  18. return static_cast<char>(str[0]) > prefix; });
  19. p.first = position;
  20. p.second = position;
  21. return p;
  22. }
  23. else {
  24.  
  25. p.first = upper_bound(range_begin, range_end, prefix);
  26. p.second = lower_bound(range_begin, range_end, prefix) - 1;
  27. return p;
  28. }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement