如何在 c 中将值从向量转换为地图?

新手上路,请多包涵

我想做这样的事情。是否有一个 stl 算法可以轻松做到这一点?

 for each(auto aValue in aVector)
{
    aMap[aValue] = 1;
}

原文由 John Mcdock 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 327
1 个回答

如果您有一个对向量,其中对中的第一项将是映射的键,第二项将是与该键关联的值,您可以使用插入迭代器将数据复制到映射:

 std::vector<std::pair<std::string, int> > values {
    {"Jerry", 1},
    { "Jim", 2},
    { "Bill", 3} };

std::map<std::string, int> mapped_values;

std::copy(values.begin(), values.end(),
          std::inserter(mapped_values, mapped_values.begin()));

或者,您可以从向量初始化地图:

 std::map<std::string, int> m2((values.begin()), values.end());

原文由 Jerry Coffin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题