【问题标题】:How to insert into a map of vectors. map<int, vector<int>> map; I want to insert values into the vector one by one如何插入向量图。地图<int,矢量<int>>地图;我想将值一一插入到向量中
【发布时间】:2021-07-12 08:16:09
【问题描述】:

我想在这个向量中插入值,不是一次全部,而是 一个接一个。我将如何做到这一点? 就像例如 我想插入 1,{2}。 现在我想再次将 1,{3} 插入向量图中。地图中的最终值应包含 1,{2,3}。 我该怎么做呢? 如果我使用插入功能,则不会插入 3 或者如果我使用 map[1] = 3 那么 2 将被覆盖。

map<int, vector<int>> map;
    map.insert({1,{2}});
    map[1] = {3,4};
    for(auto pr: map)
    {
      cout<<  pr.first<< " ";
      for(auto pr1 :pr.second)
        cout << pr1 << endl;
    }

这将为地图中的第一个键输出 3,4 个值。我希望向量中出现 2,3,4。

【问题讨论】:

  • = 分配。如果要插入推回,则需要使用insertpush_back

标签: c++ stl


【解决方案1】:
std::map<int, std::vector<int>> myMap;
myMap.insert({4, {3}});
myMap[4].push_back(2);
myMap[4].push_back(4);

使用 myMap[key] 你可以访问向量,你只需要使用push_back添加元素

【讨论】:

    【解决方案2】:

    当向量不在地图中时,如何将元素插入到向量中?不是这样的:

    std::vector<int> v{2};
    v = {3,4};
    

    因为这会将整个向量替换为具有元素 34 的不同向量。但是像这样:

    std::vector<int> v{2};
    v.push_back(3);
    v.push_back(4);
    

    当矢量在地图内时,它的工作原理相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      相关资源
      最近更新 更多