我有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());
}
感谢您的帮助!!
答案 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());
}