![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Hvoin |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
есть класс
есть список list<parent*> fact; как сделать поиск по Name, Power и Run в списке fact?
Это сообщение отредактировал(а) chipset - 7.6.2008, 08:12 |
||||
|
|||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
1. Простейший случай: find_if.
2. Сложнейший случай: boost::lambda. --------------------
|
|||
|
||||
| d06osipov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 1.11.2006 Репутация: нет Всего: нет |
Общий случай: for;
Быстрее, чем for всё равно не получится, это же список |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
ну можно еще отмапить список если скорость поиска критична...
|
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
||||
|
||||
| Hvoin |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
а если так
у меня много наследников и поиск предназачен для них как с помощью find_if найти ss,ii,rr...Знаю что нужно перегрузить () только где, и как...какой параметр должен быть третим...или rr нельзя найти с помощью find_if?
Это сообщение отредактировал(а) Hvoin - 7.6.2008, 18:10 |
||||
|
|||||
| Rififi |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
велосипедный способ
boost-способ
|
||||||
|
|||||||
| Hvoin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 22.5.2008 Репутация: нет Всего: нет |
спасибо
|
|||
|
||||
| chipset |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Метод Rififi не решает проблему поиска rr афаир. Для того что-бы решить проблему аки:
следует набросать самопальную рефлекцию, в простейшем случае:
Это просто ужасно. Добавлено через 5 минут и 16 секунд И даже вот так можно исхитритцо:
Добавлено через 5 минут и 53 секунды Теперь тока запихни все это в функтор и радуйся жжизни --------------------
|
||||||||
|
|||||||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
chipset, уж лучше вместо reinterpret_cast использовать dynamic_cast - он хоть 0 возвратит в случае неверного преобразования.
|
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
+1 --------------------
|
||||
|
|||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |