CList in funktion zurückgeben !! problem!!!
-
folgendes:
CList<int,int> CScheduler::getAlternativeModul(int iModul){ CList<int,int> aiAltList; if( iModul>m_Config->paModul.GetSize() || iModul <0 ){ return aiAltList; } aiAltList.AddHead(2); return aiAltList; }Fehler bei den "returns" -> no copy construktor avaiavle or copy contructor is declared 'explicit"
-
Dann machs als Rückgabeparameter
void CScheduler::getAlternativeModul(CList<int,int>& aiAltList, int iModul)(so oder so ähnlich...)
-
Oder Du baust Dir eine eigene KLAsse die con CList<int,int> abgeleitet ist und die einen Copyoperator unterstützt.
Oder verwende std::list<int>, damit geht das.
Und sei Dir klar was es heißt eine Klasse zu returnieren.
Ein Copy operator macht genau das was er sagt. er kopiert alle Elemente.
Hat Deine liste 1Mio Einträge ist estartu's Lösung blitzschnell und Deine, die die Liste als Element returniert durch den Kopiervorgang keimend langsam!
-
Martin Richter schrieb:
Hat Deine liste 1Mio Einträge ist estartu's Lösung blitzschnell und Deine, die die Liste als Element returniert durch den Kopiervorgang keimend langsam!
Deswegen mach ich das ja so wie oben.

1.) Ich muss nix extra machen.
2.) Es ist schneller.
3.) Es ist speichersparender.Sonst achte ich auch nicht sooo sehr auf Performance, aber da isses doch mal sinnvoll.
