У меня есть std::vector<std::uint8_t>
, который нужно дублировать. Это делается просто путем вызова конструктора копирования.
Мои результаты профилирования показывают, что реализация Microsoft Visual С++ (msvc100) использует std::uninitialized_copy
внутренне. Это копирует каждый элемент один за другим. В этом случае более оптимизированная копия может быть выполнена путем одновременного копирования целых блоков памяти (например, memcpy
).
Другими словами, это может быть значительная оптимизация. Есть ли способ заставить вектор использовать такой оптимизированный метод?
Примечание. Я попытался использовать std::basic_string<std::uint8_t>
, и он работает лучше, но у него есть другие проблемы.