struktur kopieren. Wie?



  • Hi,
    Ich habe in einer Klasse eine Struktur definiert

    typedef struct tblHW_Roads
        {
            int id;
            int line;
            int point;
            float lat;
            float lon;
            char* ende;
        }tblRoads;
    

    Ich habe in UNIT1 einen Vector dbs->road und ihn mit Werten gefüllt
    dbs ist die Klasse und road die abgeleitete Struktur.

    In der Unit1 habe ich die gleiche Struktur

    typedef struct ROADS
            {
                int id;
                int line;
                int point;
                float lat;
                float lon;
                char* ende;
            }ROADS;
    
            vector<ROADS> road;
    

    und möchte erstere Werte in die zweite kopieren

    Mein Ansatz

    vector<ROADS> road;
        copy (dbs->road.begin(), dbs->road.end(), road);
    

    funktioniert so nicht. Die BCB-Hilfe bringt mich nicht weiter.

    Weiß jemand wie das geht?



  • Hallo

    ganz allgemein gesprochen

    "funktioniert so nicht" ist keine definierte Fehlermeldung

    sag uns doch was nichzt funktioniert
    Fehlermeldung
    ...
    ...

    MfG
    Klaus



  • Hallo,

    Zuerst ein paar Fragen
    1. Warum deklarierst du zweimal die gleiche Struktur ?
    2. Warum verwendest du die alte C-Schreibweise zum Deklarieren der Struktur (typdef sruct ...) ?
    3. Wird dein vector road auch mit Werten belegt ?
    4. Warum verwendest du char* statt std::string o.ä. ?

    Hinweis
    Wenn du vector auf eine eigene struct (bzw. class) verwendest, benötigst du einen copy-ctor sowie Zuweisungsoperator. Solange du keine Pointer darin verwendest genügen ja die defaultmässig erstellten, bei dir aber nicht (wegen char*).

    Ciao und guten Rutsch



  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Braunstein schrieb:

    Hallo,

    Zuerst ein paar Fragen
    1. Warum deklarierst du zweimal die gleiche Struktur ?
    2. Warum verwendest du die alte C-Schreibweise zum Deklarieren der Struktur (typdef sruct ...) ?
    3. Wird dein vector road auch mit Werten belegt ?
    4. Warum verwendest du char* statt std::string o.ä. ?

    Ciao und guten Rutsch

    Also erst mal zu den Fragen
    1. Die Werte in der ersten Struktur sollen während der gesamten Laufzeit erhalten bleiben, währen die zweite bei bedarf aufgerufen und zerlegt wird ohne die erste zu zerlegen:
    2. Ist es denn vorteilhafter einfach (struct...) zu verwenden?
    3. Ja. in diesen werden bei bedarf alle Werte des ersten Vectors reinkopiert.
    4. Belegen Strings nicht mehr Speicher als chars? Meine chars bestehen nur aus zwei Buchstaben. Ich glaube das der Speicher dankbar ist.

    KlausB schrieb:

    "funktioniert so nicht" ist keine definierte Fehlermeldung
    sag uns doch was nichzt funktioniert
    Fehlermeldung

    Na ich dachte der Fehler währe Augenscheinlich für den, der öfter mal Strukturen kopiert. Wollte nur ´n Tip.

    So jetzt wünsche ich auch nen guten rutsch an alle zusammen.


Anmelden zum Antworten