gpt4 book ai didi

c++ - 确定 map 是否包含键的值?

转载 作者:IT老高 更新时间:2023-10-28 11:26:30 37 4
gpt4 key购买 nike

确定 STL 映射是否包含给定键的值的最佳方法是什么?

#include <map>

using namespace std;

struct Bar
{
int i;
};

int main()
{
map<int, Bar> m;
Bar b = {0};
Bar b1 = {1};

m[0] = b;
m[1] = b1;

//Bar b2 = m[2];
map<int, Bar>::iterator iter = m.find(2);
Bar b3 = iter->second;

}

在调试器中检查它,看起来 iter 只是垃圾数据。

如果我取消注释掉这一行:

Bar b2 = m[2]

调试器显示 b2{i = 0}。 (我猜这意味着使用 undefined index 将返回一个包含所有空/未初始化值的结构?)

这些方法都不是很好。我真正想要的是这样的界面:

bool getValue(int key, Bar& out)
{
if (map contains value for key)
{
out = map[key];
return true;
}
return false;
}

是否存在类似的东西?

最佳答案

只要 map 不是多 map ,最优雅的方法之一就是使用 count 方法

if (m.count(key))
// key exists

如果元素确实存在于 map 中,则计数将为 1。

关于c++ - 确定 map 是否包含键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3136520/

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