我有3個地圖:如何查找2張地圖中常見的所有鍵?
map<string, vector<int> > map1
map<string, vector<int> > map2
map<string, vector<int> > map3
我需要創建第三張地圖與現有的兩個MAP1和MAP2與它們對應的載體中的所有字符串。事情是,即使字符串是相同的,它們的向量可以不同,我必須將來自兩個常用字符串的所有向量附加到1個向量中。 這就是我想,但我有種迷失:
for(map<string, vector<int> >::iterator it1=map1.begin(); it1 != map1.end(); it1++)
{
string name = (*it1).first;
for(map<string, vector<int> >::iterator it2=map2.begin(); it2 != map2.end(); it2++)
{
string name2 = (*it2).first;
if (name == name2)
{
map3[name2] = (*it2).second;
}
}
}
非常感謝您的幫助!
你是否正在做一組交叉鍵(結果只有那些存在於兩者中的鍵)或一組聯合(如果它出現在map1或map2或兩者中,結果將有一個鍵)。 –
@Dave S set union – snazziii
@sumrania:Union將是A中的所有鍵和B中的所有鍵,而不是僅在兩個集中的所有鍵。戴夫S是正確的。 –