Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查看c+中是否存在密钥+;地图 我有一个C++映射,其中值类型是布尔O/COD>。我需要查看地图中是否存在密钥,如果不存在,则返回false。这是我现在的代码: try { return board.at[{x, y}]; } catch (const std::out_of_range& oor) { return false; }_C++ - Fatal编程技术网

查看c+中是否存在密钥+;地图 我有一个C++映射,其中值类型是布尔O/COD>。我需要查看地图中是否存在密钥,如果不存在,则返回false。这是我现在的代码: try { return board.at[{x, y}]; } catch (const std::out_of_range& oor) { return false; }

查看c+中是否存在密钥+;地图 我有一个C++映射,其中值类型是布尔O/COD>。我需要查看地图中是否存在密钥,如果不存在,则返回false。这是我现在的代码: try { return board.at[{x, y}]; } catch (const std::out_of_range& oor) { return false; },c++,C++,我不想使用[]运算符,因为如果该值不存在,它将初始化该值。有没有办法在没有try块的情况下查看map中是否存在该值?您可以使用std::map::find,如果找到,它将返回元素的迭代器;如果找不到,则返回.end return board.find({x, y}) != board.end(); 您可以使用std::map::find,如果找到元素,将返回迭代器;如果未找到元素,则使用.end return board.find({x, y}) != board.end(); 返回我的映射

我不想使用
[]
运算符,因为如果该值不存在,它将初始化该值。有没有办法在没有try块的情况下查看map中是否存在该值?

您可以使用
std::map::find
,如果找到,它将返回元素的迭代器;如果找不到,则返回
.end

return board.find({x, y}) != board.end();

您可以使用
std::map::find
,如果找到元素,将返回迭代器;如果未找到元素,则使用
.end

return board.find({x, y}) != board.end();
返回我的映射。count({x,y})
是惯用的方法,并且具有隐式
bool
转换的优点

C++20添加了
bool contains(const Key&Key)const
返回我的映射。count({x,y})
是惯用的方法,并且具有隐式
bool
转换的优点


C++20添加
bool contains(const-Key和Key)const

board.find({x,y})!=board.end()
board.count({x,y})>0
(或者如果您有C++20
board.contains({x,y})
),您可以使用
find
,如果您需要它返回的迭代器,则使用
count
board.find({x,y})!=board.end()或
board.count({x,y})>0
(或者如果您有C++20
board.contains({x,y})
),您可以使用
find
,如果需要它返回的迭代器,则使用
count