Auf Element eines Vektors zugreifen



  • Hallo liebe Community,

    mal angenommen ich habe ein Struct, das ich an einen Vektor übergeben will und einen Filestream der mit Chars aus einem Bild liest

    typedef struct s1
    { 
    int x;
    int y;
    };
    std::vector<s1> a;
    s1 temp;
    
    while(infile>>temp.x>>temp.y)
    {
    a.push_back(temp);
    }
    
    

    Wie kann ich denn jetzt auf x und y in a zugreifen? Z.B mit einem If statement um zu prüfen ob die Werte aus dem Fielstream auch darin enthalten sind?

    Vielen lieben Dank für die Hilfe 🙂


  • Mod

    a[gewünschter_index].x bzw. a[gewünschter_index].y. Und viele andere Möglichkeiten mehr. Ausdrücke in C++ sind beliebig kombinierbar. Wenn du also einen Ausdruck hast, der ein s1 ergibt(hier zum Beispiel a[0]), dann kannst du darauf auch wieder .x machen, um an das x im s1 zu kommen.

    PS: typedef struct s1? Wieso nicht nur struct s1? Du schreibst doch kein C (und in C würde man das auch anders machen).



  • Hallo SeppJ,

    danke dir. Du bist mir eine riesige Hilfe.

    Mein Fehler muss dann in der Tat bei der Definition des Structs liegen. Das habe ich nämlich in einem anderen Header definiert und in eine als voidDefinitions() deklarierte Funktion gepackt. Anschließend habe ich es global (also über int main() mit BITMAPFILEHEADER s1; wieder aufgerufen.

    Ja ich mache einen C Kurs und ich versuche die in C verfassten Programme in C++ umzuschreiben und auszuarbeiten.

    🙂



  • Wos is mit du? std::vector<std::pair<int, int>>


Log in to reply