如何使std :: vector重用给定的内存块?

时间:2018-02-05 20:39:39

标签: c++ c++11 vector memory-management

内存块包含我想用作std::vector的值。我目前使用std::memcpy复制值。

#include <cstdlib>
#include <cstring>
#include <vector>
int main()
{
    const std::size_t count = 2097152;
    float* ptr = (float*)std::malloc(count * sizeof(float)); // raw ptr for simplicity
    // ...
    std::vector<float> vec(count, 0);
    std::memcpy(vec.data(), ptr, count * sizeof(float));
    //...
    std::free(ptr);
}

然而,复制是不必要的,因为此时不再需要ptr。如何让std::vector重用内存并正常拥有它?

0 个答案:

没有答案