让std :: vector从原始指针获取所有权

时间:2020-05-29 05:45:37

标签: stdvector

我有一个传入的非托管缓冲区,其类型为BYTE*,因此这是一个字节缓冲区,并且长度信息也是已知的,现在我想使用字节缓冲区来创建这样的向量{{ 1}},

我知道我可以使用copy并稍后手动删除此缓冲区,如下所示,

std::vector<BYTE>

我的问题是,避免在此处复制的最佳方法是什么?我觉得应该有一个很好的方法来创建此向量,以便该向量使用给定的指针来拥有此缓冲区的所有权,除了避免复制,另一个好处是,我不必在之后手动foo(BYTE* in, int size) { ... std::vector<BYTE> vec; std::copy(in, in + size, std::back_inserter(vec)); ... } 对该缓冲区进行所有权复制。我认为肯定有一些优雅的方法可以安全地执行此操作。

0 个答案:

没有答案
相关问题