引用映射中嵌套对的值

Ada*_*ela 5 c++ dictionary vector std-pair

我有一个地图,其中包含一个int和一对嵌套的两个字符串:

map<int, pair<string, string> > books;
Run Code Online (Sandbox Code Playgroud)

我也有一个字符串向量.

vector<string> returned;  
Run Code Online (Sandbox Code Playgroud)

和它们一起的两个迭代器:

vector<string> returned::iterator it2; 
map<int, pair<string, string> >::iterator it3; 
Run Code Online (Sandbox Code Playgroud)

我试图访问嵌套在地图中的对的第一个字符串,以将其与向量"返回"的当前字符串进行比较.我使用两个迭代器来做到这一点.但是,我似乎无法访问嵌套对的第一个字符串.

//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;  


    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何引用这对中的第一个字符串?显然"它 - >第二 - >第一"不是解决方案.

提前致谢.

Leo*_*sky 3

有两个错误。it3->second不是迭代器。另外,正如评论中提到的,您正在将 it2 (迭代器)与字符串进行比较。有错误的行应如下所示:

if(*it2 == (it3->second.first))
Run Code Online (Sandbox Code Playgroud)