Ich habe etwas, wo firstname_list
ist ein Vektor (Datentyp String) von Zeigern. So sieht es aus wie vector <string*> firstname_list;
. Innerhalb davon sind Adressen von Strings gespeichert. Wenn ich versuche, so etwas zu tun:Iterieren durch einen Vektor von Zeigern und Ausdrucken von Werten?
cout << *(firstname_list[0]);
Es dereferenzieren die Adresse würde und geben Sie mir die Zeichenfolge ich brauche.
Allerdings habe ich versucht, eine Schleife mit einem Iterator zu erstellen, die ich auf dieser Seite gelesen, und ich versuchte dies:
vector<string*>::iterator iter;
for (iter = firstname_list.begin(); iter != firstname_list.end(); ++iter)
cout << *(firstname_array[iter]);
aber jetzt ist es nicht und stattdessen druckt gibt einen Fehler:
error C2679: binary '[' : no operator found which takes a right-hand operand of type
'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<std::basic_string<cha
r,std::char_traits<char>,std::allocator<char>> *>>>' (or there is no acceptable conversion)
Ich habe andere Threads ähnlich zu diesem Thema untersucht, wo Leute fragen, wie man durch eine Schleife iteriert, aber ich konnte es immer noch nicht herausfinden. Jede Hilfe, warum ich diese Nachricht bekomme, wird geschätzt!
Nur 'cout << * iter'. –
'firstname_list',' firstname_array' was ?? Könnten Sie bitte konsequent bleiben? –
cout << * iter; // Benutze den Iterator direkt. – Steve