2014-03-01 22 views
0

我有multimap下面的代碼聲明:插入一個映射到同一個多重映射的另一個地圖給賽格故障

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

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

我用下面找到兩個地圖迭代器:

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

Appreciat e你的幫助謝謝!

+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()); 
} 
+0

你是不是指'(it!= Rdin.end())' – WhozCraig

+0

@WhozCraig哦!我的錯。編輯我的答案。 –

+0

也可以對'ot'做順序,順便說一句。 – WhozCraig