12 Stimmen

C++ STL-Vektor-Iterator, der auf Mitglieder eines Objekts zugreift

Ich denke, ich habe einen Vektor mit einem Objekt richtig deklariert. Aber ich weiß nicht, wie man auf seine Mitglieder zugreifen, wenn Schleife mit Iterator.

In meinem Code ist die Zeile --->> cout << " " << *Iter;

Wie drucke ich den Inhalt der Mitglieder aus? Wie *Iter.m_PackLine?

Ich bin mir nicht sicher, ob ich die richtige Terminologie verwendet habe, aber danke für die Hilfe! Danke

class CFileInfo
{
  public:
      std::string m_PackLine;
      std::string m_FileDateTime;
      int m_NumDownloads;
};

void main()
{
  CFileInfo packInfo;

  vector<CFileInfo, CFileInfo&> unsortedFiles;
  vector<CFileInfo, CFileInfo&>::iterator Iter;

  packInfo.m_PackLine = "Sample Line 1";
  packInfo.m_FileDateTime = "06/22/2008 04:34";
  packInfo.m_NumDownloads = 0;
  unsortedFiles.push_back(packInfo);

  packInfo.m_PackLine = "Sample Line 2";
  packInfo.m_FileDateTime = "12/05/2007 14:54";
  packInfo.m_NumDownloads = 1;
  unsortedFiles.push_back(packInfo);

 for (Iter = unsortedFiles.begin(); Iter != unsortedFiles.end(); Iter++ )
 {
    cout << " " << *Iter; // !!! THIS IS WHERE I GET STUMPED
    // How do I output values of the object members? 
 }
}  // end main

0voto

richyz Punkte 197

Danke an alle, ich wünschte, ich könnte mehrere Punkte für die Antworten vergeben :)

litb wies auch auf ein Problem hin, das ich bei der Deklaration des Vektors hatte. Ich entfernte das zweite Argument in der Vektordeklaration und es funktionierte.

Stackoverflow hat einen Teil meines Codes analysiert, ich werde beim nächsten Mal vorsichtiger sein.

0voto

coppro Punkte 14158

vector<CFileInfo, CFileInfo& > überhaupt nicht funktionieren wird. Der zweite Parameter von vector ist der Allokator, den der Vektor verwendet, und CFileInfo erfüllt diese Anforderungen nicht, ebenso wenig wie ein Referenztyp. Ich denke, Sie wollen nur vector<CFileInfo> geben die Iteratoren und Mitglieder CFileInfo& automatisch.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X