LINUX.ORG.RU

STL upper_bound & lower_bound на map<type0,type1>


0

0

Я правильно понимаю, что эти двое (upper_bound и lower_bound) могут быть использованы только на последовательных контейнерах (vector, deque, list)? Попытка натравить их на map & multimap успехом пока не увенчалась.

Или у меня руки не оттуда растут?

У мапы есть свои родные методы upper_bound и lower_bound.

Пример с http://www.cplusplus.com/reference/stl/map/upper_bound/

// map::lower_bound/upper_bound
#include <iostream>
#include <map>
using namespace std;

int main ()
{
  map<char,int> mymap;
  map<char,int>::iterator it,itlow,itup;

  mymap['a']=20;
  mymap['b']=40;
  mymap['c']=60;
  mymap['d']=80;
  mymap['e']=100;

  itlow=mymap.lower_bound ('b');  // itlow points to b
  itup=mymap.upper_bound ('d');   // itup points to e (not d)

  mymap.erase(itlow,itup);        // erases [itlow,itup)

  // print content:
  for ( it=mymap.begin() ; it != mymap.end(); it++ )
    cout << (*it).first << " => " << (*it).second << endl;

  return 0;
}


badgopher
()
Ответ на: комментарий от badgopher

> У мапы есть свои родные методы upper_bound и lower_bound

От ёлки-ж!!! И где мои глаза были??? Спасибо. :-)

one_more_hokum ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.