2017-09-07 1 views
1
string str = cpy[i].second; 
itr = find(v.begin(), v.end(), str); 
auto pos = distance(v.begin(), itr); 
//auto pos = itr - v.begin(); 
if(pos >= v.size()/2) 
    cout << str << " "; 
else 
    cout << "-" << " "; 

cpy Hier ist ein vector von int und string Paar, d.h, vector<pair<int,string>>cpy. Der obige Teil gibt einen Fehler, dass "pos keinen Namen nennt.".
Wie man es löst?Vergleichen Vektor mit ganzzahligen Iterator

+6

Können Sie ein [minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) bereitstellen? – CoryKramer

+11

Klingt so, als würden Sie im C++ 03-Modus kompilieren, wobei der Compiler denkt, dass 'auto' ein Speicherklassen-Spezifizierer ist. – Quentin

Antwort

0

Sie können den Typ von pos einfach in int ändern. Ich denke, dass dein Compiler Auto nicht vollständig unterstützt.

+0

Ich bekomme das gleiche Problem in mehreren Compilern. –

Verwandte Themen