Форум программистов, компьютерный форум CyberForum.ru

Error in std::find_if - C++

Восстановить пароль Регистрация
 
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
02.06.2013, 22:32     Error in std::find_if #1
Привет всем. Подскажите плз. Что std::find_if не поддерживает обратных итераторов? Почему этот код вызывает ошибку компиляции?
C++
1
2
std::array<int, 0xA> arr = { 1, 5, -8, 5, 10, -5, -1, 1, 3, 7 };
std::array<int, 0xA>::iterator pos = std::find_if(arr.rbegin(), arr.rend(), NegativePred);
Код
IntelliSense: no suitable user-defined conversion from "std::reverse_iterator<std::_Array_iterator<int, 10U>>" to "std::_Array_iterator<int, 10U>" exists
Добавлено через 1 минуту
Спасибо. Решено.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 01:08     Error in std::find_if #2
Если передаете реверс итераторы, то и получите реверс итератор.
C++
1
std::array<int, 0xA>::reverse_iterator pos = std::find_if(arr.rbegin(), arr.rend(),NegativePred);
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.06.2013, 10:56     Error in std::find_if #3
Croessmah, а вообще, надо использовать auto и не париться.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 12:56     Error in std::find_if #4
Tulosba, auto не даст понимания возникшей ошибки
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.06.2013, 13:17     Error in std::find_if #5
Цитата Сообщение от Croessmah Посмотреть сообщение
auto не даст понимания возникшей ошибки
Croessmah, зато даст ее отсутствие нет ошибки - и понимать нечего.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 13:35     Error in std::find_if #6
Tulosba, Многие хотят узнать почему происходит ошибка, а не просто как ее исправить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 14:42     Error in std::find_if
Еще ссылки по теме:

Error C2440 std::vector<_Ty> C++
Error C2664: Client::First: невозможно преобразовать параметр 1 из "std::queue<_Ty>" в "std::queue<_Ty> &" C++
Error: 'move' is not a member of 'std' C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.06.2013, 14:42     Error in std::find_if #7
Цитата Сообщение от Croessmah Посмотреть сообщение
Многие хотят узнать почему происходит ошибка, а не просто как ее исправить
Я с этим не спорю. Просто auto в таких случаях, помимо сокращения времени ввода кода, помогает еще и не заморачиваться с выяснение возвращаемого типа. Что в итоге повышает КПД программиста.
Yandex
Объявления
03.06.2013, 14:42     Error in std::find_if
Ответ Создать тему
Опции темы

Текущее время: 16:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru