map 和 multimap 存储区别 、取消自动排序 unordered_map

2023-12-15 19:29:00

测试代码

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排序了

文章来源:https://blog.csdn.net/Ma_Hong_Kai/article/details/135021594
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。