将一个地图插入到同一个多图的另一个地图中会产生seg错误

时间:2014-03-01 13:18:35

标签: c++ multimap

我有multimap的以下代码声明:

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

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

我使用以下命令查找两个map迭代器:

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());

当我尝试将Rdin的内部地图插入相同类型的Rdout时,我得到段错误

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

感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

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

应该是

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