【发布时间】:2020-08-04 23:05:36
【问题描述】:
在下面的for 循环中,我测试查询中的字母是否在unordered_map<string, int> 中。如果不是,我打印一些东西。
queries = [ ["a", "c"], ["b", "a"], ["a", "e"], ["a", "a"], ["x", "x"] ]
for (vector<string>& q : queries) {
int start = index[q[0]], end = index[q[1]];
if (index.find("z") == index.end()) {cout << "z" << '\n';
}
index 仅包含 a, b, c。对应的输出是这样的:
应该是这样,因为其中一个查询中有一个z。打印index 的大小为 3。
但是,如果我运行这个:
for (vector<string>& q : queries) {
int start = index[q[0]], end = index[q[1]];
if (index.find(q[0]) == index.end()) {cout << "z" << '\n';
}
我没有得到任何输出,但我希望有 x 的输出,因为它不在 index 中。
这是为什么?
【问题讨论】:
-
答案很快就会出现(来自某人),但请:创建minimal reproducible example,以便人们在未来更容易地帮助您。
标签: c++ string unordered-map