map - problem mit Template bzw. Copykonstruktor



  • Habe da ein Problem, welches einwenig unverständlich für mich ist.

    Ich verwalte mehere Daten über mapstrukturen, um das Editieren zu vereinfachen.
    Es ist also jeweils ein map<int,klasse> vorhanden.
    Der Code des Templates:

    template<typename T>
    class IdMap
    {
    public:
    	void Copy(IdMap<T> &Copy);
    	void SetPair(T t);
    	T GetRight(int i);
    	IdMap();
    	virtual  ~IdMap();
    	int GetId();
    	map<int,T>& GetMap();
    protected:
    private:
    	map<int,T> id_map;
    	int id;
    
    };
    

    Und die copymethode des Templates:

    template<typename T>
    void IdMap<T>::Copy(IdMap<T> &Copy)
    {
    	id= Copy.GetId();
    copy(Copy.GetMap().begin(),Copy.GetMap().end(),inserter(id_map,id_map.begin()));
    }
    

    Diese CopyMethode jedoch macht mir bei einigen Klassen Probleme mit dem Kopierkonstruktor, das ich anfangs so löste, das ich den Parameter nicht const
    machte, allerdings hab ich bei einer Klasse immer noch starke probleme, die ich nicht wegbekomme.

    2 Dinge würden mich interessieren,
    1. Woran könnte das liegen 😉
    2. Gibts nen einfacheren weg eine map zu kopieren ?

    Devil



  • geht parameter const aber
    int GetId() const;
    ?



  • ne bringt nicht wirklich was.
    Wenn ich die Map anders kopieren könnte, wärs warscheinlich einfacher.

    Devil


Anmelden zum Antworten