【发布时间】:2020-08-27 04:58:19
【问题描述】:
我有一个 c++ 映射,其中值类型是 bool。我需要查看映射中是否存在密钥,如果不存在,则返回false。这是我现在的代码:
try {
return board.at[{x, y}];
}
catch (const std::out_of_range& oor) {
return false;
}
我不想使用[] 运算符,因为如果它不存在,它将初始化该值。有没有办法在没有try块的情况下查看该值是否存在于map中?
【问题讨论】:
-
board.find({x,y}) != board.end() -
或者
board.count({x,y}) > 0(或者如果你有C++20board.contains({x,y})) -
你可以使用
find,如果你需要它返回的迭代器,否则使用count。
标签: c++