Учитывая std :: vector std :: complex, я хотел бы преобразовать его в вектор, содержащий только действительную часть комплекса, разделенную на некоторый постоянный коэффициент
Прямо сейчас я делаю это:
std::vector<std::complex<double> > vec;
std::vector<double> realVec;
double norm = 2.0;
...
for (std::vector<std::complex<double> >::iterator it = vec.begin(), itEnd = vec.end(); it != itEnd; ++it)
realVec.push_back((*it).real() / norm);
Конечно, это работает нормально, но я ищу способ использовать std :: transform для того же. Я попробовал:
transform(vec.begin(), vec.end(), back_inserter(realVec), tr1::bind(divides<double>(), tr1::bind(&complex<double>::real, tr1::placeholders::_1), norm));
Но это не сработает. У меня есть эта ошибка:
erreur: no matching function for call to ‘bind(<unresolved overloaded function type>, std::tr1::_Placeholder<1>&)’|
Я не понимаю, почему существует «неразрешенный тип перегруженной функции».
Может ли кто-нибудь объяснить мне, что не так?