从向量中获取浮点值

时间:2013-03-29 06:21:35

标签: c++ objective-c ios5 vector xcode4

我对C ++几乎没有经验,所以问题可能听起来很奇怪,问题是我有一个包含浮点值的std :: 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'

有关如何转换的任何提示??

1 个答案:

答案 0 :(得分:1)

mfcc_features_a属于Features类型,vectorFeatureVector个;后者又是boost::array<T, feature_number>的别名。

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

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