插入 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
块。
我发现自己经常会遇到这样的情况:
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
块。