c++ - 从映射中的嵌套对引用值

标签 c++ dictionary vector std-pair

我有一个映射,其中包含一个 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/

相关文章:

c++ - 如何一次打印带有空格的整个 wchar_t? (c++)

python - 如何使此列表功能更快?

c++ - vector::insert 在 VS2010 中执行意外结果

javascript - 使用字典过滤javascript数据对象

c++ - 将多维 std::vector 排序为单个 vector

C++:对象 vector 与指向新对象的指针 vector ?

c++ - 为什么我不能包含 vector ?

c++ - 具有 lambda : how to compile? 的 max_element

c++ - 如何在 MFC 对话框上绘制/创建 GDI+

c# - 如何使具有相同数据的对象具有相同的键?