【发布时间】:2019-03-31 13:37:09
【问题描述】:
我遇到了以下问题:
在我从地图中删除一个键并再次调用该键后,它总是返回 0。
那么如果某个键的值被设置为0呢?
#include <iostream>
#include <map>
int main(int argc, char const *argv[]) {
std::map<std::string, int> mymap;
mymap["a"] = 10;
mymap["c"] = 10;
mymap["b"] = 20;
mymap["zero"] = 0;
if (mymap["zero"])
std::cout << "yes" << '\n';
else
std::cout << "no" << '\n
mymap.erase("zero");
if (mymap["zero"])
std::cout << "yes" << '\n';
else
std::cout << "no" << '\n';
std::cout << mymap["zero"] << '\n';
return 0;
}
【问题讨论】:
-
但我没有存储
false,if条件是检查“零”键是否存在值。 -
在这种情况下,您不会从地图中获得
true或false。你得到一个int,它被转换成bool。