В моем приложении есть часть, которая требует от меня сделать копию контейнера.На данный момент я использую std :: vector (но может рассмотреть возможность использования чего-то другого).Приложение очень чувствительно в отношении задержки.Итак, я искал способ сделать копию вектора как можно быстрее.Я обнаружил, что memcpy делает это лучше, чем все остальное.Тем не менее, это не меняет внутренний размер вектора.Т.е. vector.size () все равно даст мне 0.
Я знаю, по какому скользкому пути я иду.Я не против выбросить проверки безопасности.Я знаю, сколько элементов копируется.Я не хочу использовать vector.resize () для изменения размера целевого вектора (это медленная операция).
Вопрос:
std::vector<my_struct> destination_vector;
destination_vector.reserve(container_length);
std::memcpy(destination_vector.data(), original_vector.data(), sizeof(my_struct)*container_length);
После кода, приведенного выше, мне нужно сообщить моему destination_vector, какой он размер.Как мне это сделать?
Спасибо.