Comment les gens gèrent-ils normalement la copie d'une liste d'objets volumineux?C++ Stocker de grandes données dans std :: list <> ..dois-je utiliser le comptage de références?
Voici ma situation:
Actuellement, j'ai ceci:
typedef std::vector<float> Image;
et je stocker dans un
std::list<Image> lst;
Le est assez grand Image.Size() (chaque est ~ 3-5 MB).
Je passe (copie) la liste autour.
Est-ce que je comprends bien que std :: vector copiera chaque élément par valeur? Si oui, la performance pourrait être un peu terrible en raison de la copie excessive? Que puis-je faire pour minimiser la copie?
Dois-je à la place de stocker
std::list<ImageRef> lst;
où
typedef boost::shared_ptr<Image> ImageRef;
?
Quelle est la manière élégante de traiter ce genre de problème?
Je pense que vous avez répondu à votre propre question, en donnant une façon élégante et élégante de gérer le problème. La technique shared_ptr <> est presque certainement la voie à suivre. –