我有一个映射,其中包含一个 int 和一对嵌套的两个字符串:
map<int, pair<string, string> > books;
我还有一个字符串 vector 。
vector<string> returned;
以及伴随它们的两个迭代器:
vector<string> returned::iterator it2;
map<int, pair<string, string> >::iterator it3;
我正在尝试访问嵌套在 map 中的对中的第一个字符串,以将其与 vector “返回”的当前字符串进行比较。我正在使用两个迭代器来执行此操作。但是,我似乎无法访问嵌套对的第一个字符串。
//PUT BACK BORROWED BOOKS
for (it2 = returned.begin(); it2 != returned.end(); it2++){
//SEARCH FOR POSITION OF BOOK
for (it3 = books.begin(); it3 != books.end(); it3++){
//PROBLEM IN LINE BELOW
if(it2 == (it3->second-> first))
int bookPos = it3 -> first;
}
}
有谁知道如何引用该对中的第一个字符串?显然“it->second->first”不是解决方案。
提前致谢。
最佳答案
有两个错误。 it3->second
不是迭代器。同样如评论中所述,您正在将 it2 (迭代器)与字符串进行比较。有错误的行应该是这样的:
if(*it2 == (it3->second.first))
关于c++ - 从映射中的嵌套对引用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13672848/