У меня передан неуправляемый буфер с таким типом, как этот BYTE*
, так что это байтовый буфер, и информация о длине также известна, и теперь я хочу использовать байтовый буфер для создания такого вектора, как этот std::vector<BYTE>
,
Я знаю, что могу использовать копирование и вручную удалить этот буфер позже, как показано ниже:
foo(BYTE* in, int size) {
...
std::vector<BYTE> vec;
std::copy(in, in + size, std::back_inserter(vec));
...
}
Мой вопрос: как лучше всего избежать копирования здесь? Я считаю, что должен быть хороший способ создать этот вектор, чтобы этот вектор владел этим буфером с использованием заданного указателя, кроме предотвращения копирования, еще одно преимущество состоит в том, что мне не нужно вручную delete
этот буфер после копирования. Я думаю, что определенно есть элегантный способ сделать это безопасно.