c ++ multimap equal_range ничего не нашел - PullRequest
6 голосов
/ 25 августа 2011

Как узнать, что equal_range не нашел ни одного совпадения?

например:

multimap<string,string> mapdic;
pair<multimap<string,string>::iterator,multimap<string,string>::iterator> ret;
// insert some string pairs


ret=mapdic.equal_range(thisUpperCaseName);


    if (???)//how to test equal_range find nothing?
    {       
}else{

     }

Кто-нибудь может помочь?

Спасибо

Ответы [ 2 ]

19 голосов
/ 25 августа 2011

:)

скажем, ваш equal_range возвращает результат типа pair

Если ваш result.first == result.second, то это означает, что ничего нет.

Еслитогда есть даже один элемент result.first != result.second

if(ret.first == ret.second)
{
 // empty range
}
else
{
  //at least an element.
}
0 голосов
/ 25 августа 2011

По сути то же самое, что и ответ Аджита :) ret.first == mapdic.end()

...