저는 C++ std::multimap
을 사용하고 있으며 두 개의 다른 키를 반복해야합니다. 두 개의 범위를 만들고 그 범위를 반복적으로 반복하는 것 이외에도 효율적인 방법이 있습니까?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)
{
...
}
왜 그것이 효율적이지 않다고 생각하십니까? –
멀티 맵을 처음 사용하기에 너무 익숙하지 않습니다. 나는 그 루프에서 많은 일을 할 것이며, 동시에 두 가지 범위를 얻을 수있는 또 다른 작업이 있는지 궁금해하고 있습니다. –
키가 겹치지 만 서로 같지 않은 키의 예를들 수 있습니까? 어쩌면 내 머리가 아프지 만, 열쇠에 대한 간단한 평등 확인이 그렇게 할 것 같습니다. 각 쿼리에 대해 상한과 하한을 구분하면 내게 의미가 있습니다. –