【问题标题】:How can I convert a std::vector<float> to a float array? [duplicate]如何将 std::vector<float> 转换为浮点数组? [复制]
【发布时间】:2011-01-21 20:42:25
【问题描述】:

可能重复:
Getting array from std:vector

我一直在阅读this question 的答案并发现它们很有用,但是我如何才能对浮点类型做同样的事情呢?

【问题讨论】:

  • 为什么这不适用于float 项目?
  • 接受的答案适用于这个问题,就像它适用于任何其他数据类型一样。因此投票结束作为 dup。

标签: c++ arrays vector


【解决方案1】:

同样的事情。

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 我更喜欢&amp;v[0],但是也可以
    • std::vector::data 是获取向量内部使用的内存数组的直接指针的标准方法(c++11 起)。 cplusplus.com/reference/vector/vector/data 。该方法被添加到 C++11 是有原因的。如果您使用现代 C++ 编程,我建议您使用标准的做事方式。
    猜你喜欢
    • 2023-03-23
    • 2021-04-12
    • 2017-05-13
    • 1970-01-01
    • 2017-11-03
    • 2019-12-08
    • 1970-01-01
    • 2020-11-07
    • 2013-04-10
    相关资源
    最近更新 更多