内存块包含我想用作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
重用内存并正常拥有它?