vector checks nich



  • Hi, ich hab eine Klasse(Auto) mit verschiedenen variablen (zb.Speed,Position ).
    Wenn ich genau eine Instanz von der Klasse Auto habe kann ich damit Problemlos arbeiten. Nun will ich aber mehrere Instanzen, sagen wir mal drei. Ich habe mir überlegt dafür die lib vector zu nehmen. Aber wie benutzte ich die richtig ?

    So sieht es bisher aus :

    Auto Wagen;
    
    Wagen.set_speed(50);
    Wagen.set_pos(10);
    
    cout << "Speed = "<< Wagen.get_laenge() <<endl;
    cout << "Gewicht = "<< Wagen.get_masse() <<endl;
    

    Wie müsste das den etwa aussehen wenn ich mehrer Wagen haben will mit jeweils verschiedenen Werten ? (Wäre es besser list als vector zu verwenden ?)



  • Es gibt da dieses eine Ding, glaub es heist Internet, da gibts ein paar Beispiele dazu.



  • also du müßtest wie folgt vorgehen

    vector<Auto> fuhrpark;
    Auto temp;
    Wagen.set_speed(50);
    Wagen.set_pos(10);
    vector.push_back(temp);
    

    nicht vergessen vector zu includieren
    um zu entscheiden ob du lieber eine Liste nehmen solltest must du wissen wozu du die Liste/den Vektor benutzen willst



  • wenn du im vorhinein schon weißt, wieviele autos in deinem fuhrpark sein werden, könntest du auch auf boost::array umsteigen. wenn sich die anzahl dynamisch ändert, dann kannst du immer noch, wenn du weißt, wieviele autos anfangs im fuhrpark sind, diese information dem konstruktor von vector übergeben (erspart das ständige kopieren, wenn es viele autos sind außerdem ständiges reallozieren von speicher):

    std::vector<Auto> fuhrpark (100); //100 autos, mit standardkonstruktor erstellt
    
    Auto vorlage;
    std::vector<Auto> fuhrpark2 (100, vorlage); //100 autos, kopien der vorlage
    
    //und dann individualisieren:
    fuhrpark[0].set_speed(...);
    fuhrpark[42].set:pos(...);
    


  • super thx


Log in to reply