2013-03-29 5 views
1

У меня мало или вообще нет опыта на C++, поэтому вопрос может звучать странно, проблема в том, что у меня есть std :: vector, содержащий значения float, я хочу извлечь из него значения float, итерации.Получение значений float от вектора

Код определение вектора, как:

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)' to 'float'

Любые подсказки о том, как конвертировать ??

+0

Вектор, похоже, не содержит поплавков, массивов поплавков. –

ответ

1

mfcc_features_a относится к категории Features, что составляет vector от FeatureVector s; последний, в свою очередь, является псевдонимом для boost::array<T, feature_number>.

Короче говоря, вы пытаетесь присвоить boost::array<T, feature_number>float. Теперь, если аргумент шаблона T для FeatureTypeDTW - это float (или что-то, конвертируемое в число с плавающей запятой), это должно сработать.

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

Какой второй элемент? это полезно для меня? я имею в виду, если это двумерный вектор, то я должен его рассмотреть – Firdous

+0

@Firdous Как бы я знал это? Из сообщения об ошибке выглядит, что массив содержит 7 элементов. Любой/все они могут/не могут быть полезны для вас, это вам решать. – Praetorian

+0

правильно скажите, что каждый mfcc_features_a [index] будет содержать 1 значение или семь значений в другом измерении? это 2D-массив? не знают векторов :) – Firdous

Смежные вопросы