std::multimap получая два диапазона

Я использую C++ std::multimap и должен зацикливаться на двух разных ключах. Есть ли другой эффективный способ сделать это, кроме создания двух диапазонов и петлирования по этим диапазонам по отдельности?

Вот как я делаю это сейчас:

std::pair<std::multimap<String, Object*>::iterator,std::multimap<String, Object*>::iterator> range;
std::pair<std::multimap<String, Object*>::iterator,std::multimap<String, Object*>::iterator> range2;

// get the range of String key
range = multimap.equal_range(key1);
range2 = multimap.equal_range(key2);

for (std::multimap<String, Object*>::iterator it = range.first; it != range.second; ++it)
{
    ...
}
for (std::multimap<String, Object*>::iterator it2 = range2.first; it2 != range2.second; ++it2)
{
    ...
}
5
задан Mat 7 September 2011 в 15:18
поделиться