gpt4 book ai didi

c++ - 如何在三元组运算符的帮助下按最大值完成映射

转载 作者:行者123 更新时间:2023-11-28 05:11:35 25 4
gpt4 key购买 nike

我有一张 map ,我想用最大值来实现它。我想要的是:1. 如果 key 不存在或 value > mymap[key]mymap[key] = value2. 否则,我不想重写mymap[key] value

我有一个强烈的印象,下面写的所有内容都可以在三元组运算符的帮助下在一行中完成

    if (mymap.find(key) != mymap.end()) 
{
mymap[key] = value;
}
else
{
if (value > mymap[key]) mymap[key] = value;
}

我会这样做

mymap[key] = value > mymap[key] ? value : mymap[key];

但如果 key 不存在,这将创建 mymap[key] = 0,问题是 value 可能为负.

有什么想法吗?非常感谢您的提前帮助!

最佳答案

如评论中所述,您多次在 map 上搜索 key 。通常,最好保存查找的结果,以便以后将其用于操作,这样您就不会每次都在 map 上研究 key 。

这个怎么样?

const auto it = mymap.find(key);
if (it != mymap.end())
{
it->second = std::max(value, it->second);
}
else
{
mymap.emplace(key, value);
}

关于c++ - 如何在三元组运算符的帮助下按最大值完成映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43397818/

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