插入 std::map<int, std::vector 的简短函数<int>>

Short function to insert into a std::map<int, std::vector<int>>

本文关键字:gt lt int std 函数 插入 vector map      更新时间:2023-10-16

我发现自己经常处于编写以下代码的情况:

std::map<int, std::vector<int>> dict;
void insert(int key, int val) {
  if (dict.find(key) == dict.end()) {
    dict[key] = std::vector<int>();
  }
  dict[key].push_back(val)
}

有没有一种不那么冗长的方式(在 C++11 中)编写这个插入函数?

我不认为你的函数特别冗长,但在这种情况下,它可以简单地替换为dict[key].push_back(val)因为地图上的operator[]默认构造值如果不存在。您不需要if块。