Iterieren durch Vektor von eigenen Klassenelementen



  • Hallo,

    ich habe eine Klasse Symbol erstellt und einen Vektor, der Symbol-Objekte enthält erstellt.
    Nun möchte ich durch diesen vektor iterieren.

    std::vector<Symbol>::iterator it;
    
    	for (it = x.data_.begin(); it != x.data_.end(); ++it)
    		os << *it << std::endl;
    

    Es gibt folgenden Fehler:

    d:\Dev\TheProject\symboldic.cpp(49): error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operator vom Typ 'std::vector<_Ty>::const_iterator' akzeptiert (oder keine geeignete Konvertierung möglich) with [_Ty=Symbol]

    Gruss



  • Dein Vektor ist wahrscheinlich konstant, also so:

    const std::vector<Symbol> data_;
    

    Auf konstante Container kann man nur mit const_iteratoren zugreifen. Probiers also mal hiermit:

    std::vector<Symbol>::const_iterator it;
    

Log in to reply