我发现自己常常处于编写以下代码的情况:
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中)?
答案 0 :(得分:7)
我不认为你的功能特别冗长,但在这种情况下它可以简单地用dict[key].push_back(val)
替换,因为地图上的operator[]
默认构造值,如果它不存在。您不需要if
阻止。