внутренний_продукт карты - PullRequest
       6

внутренний_продукт карты

0 голосов
/ 02 сентября 2011

не может быть применен inner_product к карте.У меня есть следующий код:

std::map<class A, class B> s;
std::map<class A, class B>::const_iterator vit=s.begin();
long double x = std::inner_product(vit->first,vit->second,vit->first,0.0);

, но я получаю функцию несоответствия для ошибки inner_product.

1 Ответ

3 голосов
/ 02 сентября 2011

Это, конечно, может быть применено к картам, с учетом творчески выбранных функторов, но inner_product ожидает итераторы, в то время как vit->first является const A, а vit->second является B.

Например,,

std::map<int, double> m = {{1, 0.1}, {2, 0.2}};
typedef std::map<int, double>::value_type val_t;
double x = std::inner_product(m.begin(), m.end(), m.begin(), 0.0,
           std::plus<double>(),
           [](val_t lhs, val_t rhs){return lhs.first * rhs.second;});
...