Как люди обычно управляют копированием списка больших объектов вокруг?
Вот моя ситуация:
В настоящее время у меня есть это:
typedef std::vector<float> Image;
и я храню его в
std::list<Image> lst;
Image.size () довольно большой (каждый занимает ~ 3-5 МБ).
Я передаю (копирую) список вокруг.
Правильно ли я понимаю, что std :: vector будет копировать каждый элемент по значению? Если это так, производительность может быть немного ужасной из-за чрезмерного копирования?
Что я могу сделать, чтобы минимизировать копирование? Должен ли я хранить
std::list<ImageRef> lst;
, где
typedef boost::shared_ptr<Image> ImageRef;
?
Какой элегантный способ решения этой проблемы?