Использование std::transform и tr1::bind для преобразования вектора std::complexC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование std::transform и tr1::bind для преобразования вектора std::complex

Сообщение Anonymous »


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

std::vector vec; std::vector realVec; двойная норма = 2,0; ... for (std::vector::iterator it = vec.begin(), itEnd = vec.end(); it != itEnd; ++it) realVec.push_back((*it).real() / норма); Конечно, это работает нормально, но я ищу способ использовать std::transform для достижения того же самого. Я пробовал:

transform(vec.begin(), vec.end(), back_inserter(realVec), tr1::bind(divides(), tr1::bind(&complex::real, tr1::placeholders::_1), норма)); Но это не сработает. У меня такая ошибка:

ошибка: нет соответствующей функции для вызова 'bind(, std::tr1::_Placeholder&)'| Я не понимаю, почему существует «неразрешенный тип перегруженной функции».

Может кто-нибудь объяснить мне, в чем дело?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»