Я ищу наиболее эффективный способ скопировать содержимое списка векторов в вектор. Я хочу избежать возможного перераспределения памяти.C++: эффективная копия списка векторов в векторе
Моя проблема заключается в следующем: у меня есть:
а
std::vector<int> v
, содержащие N элементовсписок вектора
std::vector< std::vector<int>* > vlist
, и я знаю, что общее число элементов M в векторах vlist - < = N (N и M могут быть очень большими)
Я хочу скопировать все элементы vlist в v (сначала все элементы vlist [0], затем все элементы vlist [1] и т. Д.) И в конце уменьшить размер v к M (мой проект не использует C++ 2011).
Как сделать это максимально эффективно?
спасибо.
EDIT: примечание: v уже заполнено N элементами, и я хочу заменить их на M (< = N) элементы, исходящие из других векторов.
Если вы хотите избежать выделения памяти, то вы действительно не сможете получить копию, вы можете получить ссылку. Вы можете ссылаться на объект или создать его копию, возможно, наиболее интуитивно понятным вариантом является повторное использование памяти при копировании (что позволит сэкономить на распределении памяти). Так как ваш вектор содержит 'int', вы собираетесь разместить их в стеке, чтобы быть быстрее, чем выделять кучу. – Kiril