![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
User008 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 306 Регистрация: 9.9.2009 Репутация: нет Всего: 1 |
При поиске используется сравнение из стандартной библиотеки вместо моего. Для friend bool operator==(const C &lhs , const C &rhs) то же самое. Почему так происходит и как исправить? |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
не вникал в подробности приведенного кода, но имхо не там ищете.. если не ошибаюсь, то для поиска используется оператор <, а не ==. |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Ошибаетесь, operator< () используется для сортировки. User008, Пройдись отладчиком, покажи в какой строке ты ожидаешь operator== -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
|
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
mes, Ну да. При вставке значений, ключи по умолчанию сортируются по std::less<>
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
попробовал код из первого поста.. все работает.
m.find() использует пользовательский оператор <(). в 44й сточке не ищет, так как map еще пустой (заполнение происходит на 45й). ![]() Добавлено через 3 минуты и 29 секунд P.S. это специально "C" в коде написано кирилицей ? заметаем следы ?! ![]() Добавлено через 4 минуты и 50 секунд
и при find для ассоциативных контейнеров, в частности для map o которой у нас идет речь, используется та же Compare функция. ![]() |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
mes, У меня получилось что == не вызывается ваще во всей программе. а оператор < вызывается. еще, я не понял, чего именно пытается добиться ТС ?
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Ааа.. Я то подумал что там ошибка где-то, потому и не вызывается. Так она и используется. Вот только оператор== тут при чем? ![]() -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |