gpt4 book ai didi

c++ - 如果在 map 中找不到键,则返回其他值

转载 作者:太空狗 更新时间:2023-10-29 23:49:32 25 4
gpt4 key购买 nike

我有无序 map :

static unordered_map<int, long> my_map;
auto& result = my_map[i];

如果没有键i,结果将是0。是否可以返回其他值,例如 NULL-MAXINT

最佳答案

你可以这样做(不在 map 中插入值):

template <typename Key, typename Value>
Value& get_or(std::unordered_map<Key, Value>& m, const Key& key, Value& default_value)
{
auto it = m.find(key);
if (it == m.end()) {
return default_value;
}
return it->second;
}

或者如果你想在 map 中添加不存在的值:

template <typename Key, typename Value, typename T>
Value& get_or(std::unordered_map<Key, Value>& m, const Key& key, T&& default_value)
{
return m.emplace(key, std::forward<T>(default_value)).first->second;
}

并使用它

int default_value = 42;
auto& result = get_or(my_map, i, default_value);

关于c++ - 如果在 map 中找不到键,则返回其他值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com