Art*_*sik 4 c++ arrays reference stdvector
我想创建一个std::vector<float> vpd将引用的float*.
float * old = new float[6];
for (int i = 0; i < 6; i++)
{
old[i] = i;
}
vector<float> vpd(6);
auto refasd = &*vpd.begin();
*refasd = *old;
vpd[0] = 23;
cout << old[0] << endl;
Run Code Online (Sandbox Code Playgroud)
我应该如何修改代码,如果我想要得到23的cout?
你不能.std::vector不是为了取得原始指针的所有权.
也许你可以做到std::unique_ptr<float[]>,但更好的解决方案是直接使用std::vector.
作为替代方案,您可以使用std::span(C++ 20)
float* old = new float[6];
std::iota(old, old + 6, 0);
std::span<float> vpd(old, 6);
vpd[0] = 23;
std::cout << old[0] << std::endl;
delete[] old;
Run Code Online (Sandbox Code Playgroud)