测试代码
std::map<int, CString > Map1;Map1.insert({ 6, L"HN400*200*11*8" });Map1.insert({ 5, L"HN200*200*11*8" });Map1.insert({ 7, L"HN100*200*11*8" });Map1.insert({ 4, L"HN200*200*11*8" });Map1.insert({ 4, L"HN600*200*11*8" });std::multimap< CString, int> Map2;for (const auto& pair : Map1){int i = pair.first;CString str = pair.second;Map2.insert({ str, i });}for (const auto& pair : Map2){CString str = pair.first;int i = pair.second;i++;}
测试结果
map的
multimap 的
简单结论,map key唯一 ,单对单映射。多对单映射;multimap 可以多对多映射;单对多映射
std::unordered_map<int, CString> Map3;for (const auto& pair : Map2){CString str = pair.first;int i = pair.second;Map3.insert({ i, str});i++;}
结果
应按照value将map排序了