从矢量中获取浮点值

Getting float values from a vector

本文关键字:获取      更新时间:2023-10-16

我很少或没有c++经验,所以问题可能听起来很奇怪,问题是我有一个std::vector包含浮点值,我想通过迭代从它提取浮点值。

vector的定义代码如下:

template <typename T, size_t feature_number>
  T vector_distance(const boost::array<T, feature_number>& v1,
                    const boost::array<T, feature_number>& v2);
  template <typename T = double, size_t feature_number=3>
  class CLASSNAME
  {
  public:
    typedef boost::array<T, feature_number> FeatureVector;
    typedef std::vector<FeatureVector> Features;
    ...

我是这样使用它的:

FeatureTypeDTW::Features mfcc_features_a = METHODTHATRETURNSVECTOR();
    for (int s = 0; s < (int) mfcc_features_a.size(); s++)
    {
        float MYFLOAT = mfcc_features_a[s];
    }
但是我得到的编译错误是:

无法从'boost::array (float, 7)'转换为'float'

如何转换的提示??

mfcc_features_aFeatures型,为FeatureVector s中的vector型;后者是boost::array<T, feature_number>的别名。

简而言之,您试图将boost::array<T, feature_number>分配给float。现在,假设FeatureTypeDTW的模板参数Tfloat(或可转换为浮点数的东西),这应该可以工作。

float MYFLOAT = mfcc_features_a[s][0];  // assigns first element of boost::array
                                        // to MYFLOAT