Вопрос

I have the following code declaration of multimap:

typedef std::multimap<std::string,std::string> rd;

std::multimap<std::string, rd> Rdout;
std::multimap<std::string, rd> Rdin;

I use the following to find two map iterators:

std::multimap<std::string,rd>:: iterator ot =
Rdout.find(B.getName().str()+B.getParent()->getName().str());

std::multimap<std::string,rd>:: iterator it = 
Rdin.find(B.getName().str()+B.getParent()->getName().str());

When I try to insert inner map of Rdin into Rdout which are of same type I get segfault

if(!it->second.empty())
{
    ot->second.insert(it->second.begin(), it->second.end());
}

Appreciate your help thanks!!

Это было полезно?

Решение

if(!it->second.empty())
{
    ot->second.insert(it->second.begin(), it->second.end());
}

should be

if(it != Rdin.end())
{
    ot->second.insert(it->second.begin(), it->second.end());
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top