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

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

我发现自己经常会遇到这样的情况:

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 块。