Я пытаюсь использовать алгоритм преобразования (или любую другую часть STL, которая будет выполнять задание), чтобы изменить последовательность int. Если текущий элемент больше 5, сохраните его. Else использование 5.STL алгоритм/функциональный
Это не компилируется:
std::vector<int> vec;
vec.push_back(6);
vec.push_back(2);
vec.push_back(9);
vec.push_back(4);
vec.push_back(7);
std::transform(vec.begin(), vec.end(), vec.begin(), std::bind1st(std::max<int>(), 5));
У меня нет доступа к C++ 11.
Вы не должны вызывать 'max' функцию, давая его в' станд :: bind1st'. Вы хотите дать ему функцию, а не результат вызова ее без аргументов. – chris
@chris Ах, стыдно, что вы удалили свой старый (правильный) комментарий, я имею в виду это в своем ответе. ;-) –
@ KonradRudolph, О, стреляй, я думал, что я сумасшедший, но я забыл, что ему нужны псевдонимы типов. Более современные инструменты делают то же самое, не навязывая это, поэтому я забыл. – chris