Wie verwalten Menschen normalerweise das Kopieren einer Liste großer Objekte?C++ Speichern großer Daten in std :: list <> .. sollte ich Referenzzählung verwenden?
Hier ist meine Situation:
Zur Zeit habe ich dies:
typedef std::vector<float> Image;
und ich bin zu speichern es in einem
std::list<Image> lst;
Die Image.Size() ist recht groß (jeweils ist ~ 3-5 MB).
Ich bin vorbei (kopieren) die Liste herum.
Ist es ein richtiges Verständnis von mir, dass std :: vector jedes Element nach Wert kopiert? Wenn ja, könnte die Performance aufgrund exzessiven Kopierens etwas schlecht sein?
Was kann ich tun, um das Kopieren zu minimieren? Sollte ich stattdessen
std::list<ImageRef> lst;
wo
typedef boost::shared_ptr<Image> ImageRef;
?
Was ist die elegante Art, mit dieser Art von Problem umzugehen?
Ich denke, dass Sie Ihre eigene Frage beantwortet haben, indem Sie eine schöne, elegante Art der Behandlung des Problems gegeben haben. Die shared_ptr <> Technik ist fast sicher der Weg zu gehen. –