gpt4 book ai didi

当第二个元素为 X 时,C++ Map 获取第一个元素

转载 作者:搜寻专家 更新时间:2023-10-31 02:08:35 24 4
gpt4 key购买 nike

我有一个名为 buttonValues 的 C++ 映射,如下所示。

map<int, int> buttonValues;

我将一些数据放入我的 map 中,如下所示。

buttonValues.insert(std::pair<int, int>(0, 1)); 
buttonValues.insert(std::pair<int, int>(1, 3));
buttonValues.insert(std::pair<int, int>(2, 0));

我想做的是在第二列中搜索值 0,如果在第二列中找到 0,则返回第一列中的值。在这个例子中,我想要返回的值是 2。到目前为止,我相信我可以用这个在第二列中搜索 0:

buttonValues.find(0)->second

但是,如何获取第一列对应的值呢?

谢谢钙铝

最佳答案

buttonValues.find(0)->second 将为您提供与键 0 对应的值(“第 2 列”)。在您的示例中,它将返回 1。您需要遍历 map 并查找值 = 0 然后返回键:

for (const auto& keyval : buttonValues) // Look at each key-value pair
{
if (keyval.second == 0) // If the value is 0...
{
return keyval.first; // ...return the first element in the pair
}
}

你可以把它放在一个函数中。请注意,映射具有唯一键但不一定具有唯一值。因此,您可能应该处理具有多个值为 0 的键的情况。

关于当第二个元素为 X 时,C++ Map 获取第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47383618/

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