首页 > 解决方案 > c++ float* 数组作为对 std::vector 的引用

问题描述

我想创建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;

23如果我想从中获取,我应该如何修改代码cout

标签: c++arraysreferencestdvector

解决方案


作为替代方案,您可以使用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;

推荐阅读