Получение значений с плавающей точкой из вектора

У меня мало или совсем нет опыта работы с 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

Решение

mfcc_features_a имеет тип Features, который является vector из FeatureVectors; последний в свою очередь является псевдонимом для 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
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]