如何将std::vector<float>转换为float数组?

5

为什么对于“float”类型的项目不起作用? - user395760
2
那个被接受的答案同样适用于这个问题,就像对于任何其他数据类型一样。因此投票将其关闭为重复。 - T.E.D.
2个回答

12

同样的事情。

std::vector<float> v(10);
float *p = &v[0];

2
在您引用的答案中,正如经济学家所展示的那样。
std::vector<float> v;
v.push_back(1.2);
v.push_back(3.4);

// &v[0] is a pointer to the first element of the vector.

float* array_sort_of = &v[0];
for (size_t i = 0; i < 2; i++) {
    std::cout << array_sort_of[i] << " ";
}

// Output: 1.2 3.4

float* arr = v.data(); - x4444
@x4444 我更喜欢使用&v[0],但是那个也可以。 - Lightness Races in Orbit
std::vector::data 是一个标准的方法,用于获取指向 vector 内部使用的内存数组的直接指针(自 C++11 起)。http://www.cplusplus.com/reference/vector/vector/data/。该方法被添加到 C++11 中是有原因的。如果您正在使用现代 C++ 进行编程,我建议使用标准的方法来完成任务。 - x4444

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接