fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <map>
  4. using namespace std;
  5.  
  6. typedef std::map<int,int>::iterator Iter;
  7.  
  8. Iter getIterator(std::map<int,int> &m, int val) {
  9. Iter lb = m.upper_bound(val);
  10. if((lb == m.begin()) || (lb == m.end())) {
  11. return m.end();
  12. }
  13. Iter it = std::prev(lb);
  14. if(it->first <= val && val <= it->second ) {
  15. return it;
  16. }
  17. else{
  18. return m.end();
  19. }
  20. }
  21. int main() {
  22. // your code goes here
  23. std::map<int,int> mymap;
  24. mymap[100]=200;
  25. mymap[1000]=2000;
  26. mymap[2000]=2500;
  27. mymap[3000]=4000;
  28. mymap[5000]=5100;
  29.  
  30. int a[4]{4500, 4000, 150, 0};
  31. for(int x : a){
  32. Iter it = getIterator(mymap, x);
  33. if(it != mymap.end()){
  34. cout << "Value " << x << " : Found in range: " << it->first << ", " << it->second <<endl;
  35. }else{
  36. cout << "Value " << x << " : NOT FOUND!" <<endl;
  37. }
  38. }
  39. return 0;
  40. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
Value 4500 : NOT FOUND!
Value 4000 : Found in range: 3000, 4000
Value 150 : Found in range: 100, 200
Value 0 : NOT FOUND!