STL-Vektor mit globalem Zugriff



  • Hallo!

    Ich verwende in meiner MFC-Anwendung einen STL-Vektor, um die Länge dynamisch zu halten.

    Jetzt habe ich den Vektor lokal im Dokument (bei Einlesen von Werten in meiner Serialize()-Funktion) erzeugt, möchte aber im ganzen Projekt mit diesem Vektor arbeiten.

    Ich komme aber nichtmal im Rest des Dokuments an den Vektor dran - geschweige denn im ganzen Projekt. Ich benutze die STL wirklich nur am Rande und habe nicht allzuviel Ahnung davon - kann mir jemand einen Tip geben, wie ich das Ding global verwendbar mache?

    Danke,
    tronaccount



  • Hallo,

    global ist sowas immer schlecht, allerdings kenn ich das Design deines Programms auch nicht. Du kannst den Vector auch per Referenz von Funktion zu Funktion weitergeben.



  • Mach den Vektor einfach zu nem Member deiner Doc-Klasse und schreib ne Funktion die ne Referenz/Zeiger auf den Vektor liefert, so kannst du ihn ihn der ganzen Doc und View Klasse benutzen.



  • ... arbeite mit der MFC. Ich habe versucht, den Vektor in der Header-Datei unterzubringen - Vergebens. Ich schaffe es nicht, den STL-Vektor als gobalen Member des Dokuments zu definieren...



  • Wo ist denn das Problem?

    Du hast doch deinen Header mit der Klassendeklaration, sieht ja so ungefähr aus

    #include <vector>
    class CDeineDocKlasse : public CDocument
    {
        /* .... */
    
        public:
        std::vector<int>& getVector ()
        {
            return myVec;
        }
    
        private:
        std::vector<int> myVec;
    };
    

    Was für nen Fehler bekommst du denn?



  • Vielleicht kannst du dich mal entscheiden in welchem Subforum du deine identische Frage beantwortet haben möchtest 😡
    http://www.c-plusplus.net/forum/viewtopic.php?t=88348



  • Also, in meiner Serialize steht folgendes:

    void CSDIFrameDoc::Serialize(CArchive& ar)
    {
    ...
    ...
    vector< vector< vector< vector<double> > > > animData(timeSteps);
    ...
    ...
    }
    

    Also ist mein animData[][][][] lokal in der Serialize() bekannt - nicht aber im ganzen Dokument.
    Ich habe die Definition (eigentlich ist ja eine Initialisierung) mal in den Header gesetzt - erwartungsgemäß klappt das nicht.
    Wielautet denn die exakte Syntax für die Definition meines Objekts im Header? Wie gesagt - bin in der STL nicht fit...



  • Könntest du dein mehrfaches Posting in den verschiedenen Subforen mal unterlassen 😡 😡 😡
    http://www.c-plusplus.net/forum/viewtopic.php?t=88348



  • Sorry - wußte nicht, wo es hingehört. Wegen MFC (in der MFC-Ecke) oder STL (C++-Ecke). Ich bin ja nichtmal sicher, in welcher "Abteilung" mein Problem liegt...

    Einigen wir uns auf die MFC-Ecke, okay?

    Sorry & Danke


Anmelden zum Antworten