std::auto_ptr + std::vector
-
hi!
ich will eine Instanz in einem std::vector einfügen!
FileMapping map(file, SEGMENTSIZE); // Instanz der Klasse FileMapping erstellen _fileMapping_Objects.push_back(map);
nur hab ich jetzt das problem es wird eine kopie von der instanz in den vector eingefügt....ich will aber das orginal einfügen...also sollte das mit pointern gehen...dachte an std::auto_ptr...wie löst man dieses problem mit auto_ptr???
lg
-
auto_ptr kann soweit ich weis nicht in stl container eingefügt werden
-
Dafür eignet sich boost::shared_ptr von www.boost.org. auto_ptr ist nur für wenige Sonderfälle geeignet, meistens sind boost::scoped_ptr und boost::shared_ptr die bessere Wahl.
boost::shared_ptr<FileMapping> mapPtr(new FileMapping(...)); std::vector<boost::shared_ptr<FileMapping> > fileMappings; fileMappings.push_back(mapPtr);
Und so weiter.
-
operator void schrieb:
Dafür eignet sich boost::shared_ptr von www.boost.org. auto_ptr ist nur für wenige Sonderfälle geeignet, meistens sind boost::scoped_ptr und boost::shared_ptr die bessere Wahl.
boost::shared_ptr<FileMapping> mapPtr(new FileMapping(...)); std::vector<boost::shared_ptr<FileMapping> > fileMappings; fileMappings.push_back(mapPtr);
Und so weiter.
hi!
danke...shared_ptr ist so ein pointer auf das objekt und somit füge ich einen pointer in den vector ein kann man sagen? cu
-
Hallo,
falls du noch ein paar Infos zu auto_ptr brauchst:
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=auto_ptr#Answ