我有一个map<string, set<string>>
,我只有一个条目,即flights["Madison"].insert("Boston");
现在,我想知道如何检查 map 中是否存在"Madison", "Boston"
条目。我想不出一种方法来确定集合中键的值是否存在。
到目前为止,这是我的尝试:我感觉好像一两行。
typedef map<string, set<string>> TFlights;
TFlights flights;
TFlights::iterator iter, iter2;
bool found = false;
flights["Madison"].insert("Boston");
flights["Madison"].insert("Miami");
for(iter = flights.begin(); iter != flights.end(); iter++)
{
if(iter->first == "Madison" && //iter->second contains "Boston" )
{
found = true;
}
}
return found;
最佳答案
对 map 使用map::iterator
和find()
函数。一旦在 map 上找到该值,就搜索set
:
bool found = false;
TFlights::iterator it = flights.find("Madison");
if ( it != flights.end())
{
// key exists in map. Now search the set
if (it->second.find("Boston") != it->second.end())
found = true;
}
return found;
关于c++ - 字符串映射,设置。比较值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27352230/