【发布时间】:2018-09-03 20:16:56
【问题描述】:
有一个map 和map<string, vector<string>> buses; 结构,我有一个string,所以我需要了解如何检查string 包含在map 向量中。
string stop;
cin >> stop;
if (buses.find(stop) != buses.end()) {
cout << "Yes";
} else {
cout << "No";
}
当我得到一个stop 字符串时,我需要检查map 的值(不是键,更准确地说是map.second)中是否有一个字符串等于stop 字符串,如果是,我需要打印出所有值中包含stop 元素的键。 { {"bus#1", {"stop#1", "stop#2", "stop#3"}}, ... }
【问题讨论】:
-
你的意思是“我能找出地图中是否有一个给定字符串的键吗?如果有,
find应该这样做。你能举一个完整的例子吗? -
你能说明
buses的定义(和人口)吗? -
@StephanLechner 已编辑
-
我确定他的地图是
{ {"bus#1", {"stop#1", "stop#2", "stop#3"}}, ... },所以他需要先构建一个反向地图或在嵌套循环中进行查找。 -
听起来你需要反转你的键值对并使用
find。
标签: c++