![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Rutti |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 225 Регистрация: 25.7.2004 Репутация: нет Всего: нет |
Возможно ли использовать алгоритм find в структурах?
К примеру:
Надо найти позицию элемента вектора vec, сожержащего выбранную строку. |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
используй std::find_if.
|
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
да. есть несколько вариантов. 1. как сказал JackYF, использовать std::find_if и свой предикат сравнения 2. или определить у структуры оператор сравнения, и в нем сравнивать строки, то можно обойтись и просто std::find |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
Rutti |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 225 Регистрация: 25.7.2004 Репутация: нет Всего: нет |
all
Т.е. только через предикат сравнения? Это как может выглядеть? Это сообщение отредактировал(а) Rutti - 13.2.2007, 12:33 |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
вот тебе пример:
что не понятно спрашивай Это сообщение отредактировал(а) chaos - 13.2.2007, 13:41 |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Совершенно согласен - не тот случай. Если в структуре был бы метод, возвращающий строковое поле (что наиболее логично с точки зрения ООП-проектирования), то я бы сделал так:
Можно и через std::bind1st, std::mem_fun, но менее красиво. Без метода можно написать с использованием boost::lambda, но я бы в данном случае не стал так делать. А видя JackYF - тихо замолкаю... Это сообщение отредактировал(а) Любитель - 13.2.2007, 15:47 |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Извините за оффтопик... Да ладно ![]() Ввиду этого ты теперь можешь при мне писать код с помощью буста, и я особо возражать не буду ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |