| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > STL |
| Автор: Dmi3ev 14.3.2009, 23:52 | ||||
| Как мне самому определить правила сортировки в sort()? те, например, у меня структура вида:
и я создаю в программе
как мне сортировать по имени и по дате??? те задавать свои правила сортировки??? че-то получается, но... |
| Автор: mes 14.3.2009, 23:55 |
| http://www.cplusplus.com/reference/algorithm/sort.html |
| Автор: Dmi3ev 14.3.2009, 23:56 | ||
не так немного выразился, не одновременно, а поочереди хотя бы... дальше сам смогу думаю, просто я третьим параметром в sort указываю свою функцию сравнения, но че-то не айс... Добавлено через 55 секунд mes, отсюда я и начал, но что-то туго, можно пример для моего случая... |
| Автор: Lazin 15.3.2009, 00:04 |
не айс это:
Добавлено через 19 секунд что именно, все телепаты уже пьяны |
| Автор: mes 15.3.2009, 00:06 | ||
| покажи функцию сравнения и как вызываешь Добавлено @ 00:13 вот набросок :
|
| Автор: Dmi3ev 15.3.2009, 12:39 | ||
оказывается, я могу провести аналогию между кодом (который по ссылке) и своим... это радует, а то я отчаялся уже.... начал просить, чтобы вы мне показали, просто в студии работать не хочет...
в Билдер 6 это работает нормально а в VS говорит: Line: 3128 Expression: invalid operator '<' почему? |
| Автор: zim22 15.3.2009, 13:01 | ||
немного подправил код (добавил ветку else в ф-ю myf1. работает у меня в студии.
|
| Автор: Dmi3ev 15.3.2009, 13:17 | ||
тоже уже допер до этого...((( вот лажа, а вчера весь вечер сидел втыкал... все из-за того, что лень было написать else return false; жалко из-за такого сидеть и тупить... спасибо... ща сделаю с датой, тогда закрою тему, если получится... |
| Автор: zim22 15.3.2009, 13:22 |
я сам не обратил внимание на нехватку else. Но компилятор напомнил: warning C4715: 'myf1' : not all control paths return a value |
| Автор: Dmi3ev 15.3.2009, 13:23 | ||||
вот для даты что написал, вроде работает... как надо... Добавлено через 2 минуты и 8 секунд
я так же до этого дошел... Добавлено через 3 минуты и 10 секунд Теперь только интересно, а почему Билдер это кушает только в путь??? |
| Автор: mes 15.3.2009, 15:30 | ||||
я бы разбил на две функции и операцию сравнения написал бы так :
a параметры передавал бы как константную ссылку :
|
| Автор: Dmi3ev 15.3.2009, 16:05 |
| mes, конечно так мощнее... спасибо... Добавлено через 1 минуту и 40 секунд а это так специально? bool operator < (const mydate& lhs, mydate& rhs) или надо вот так bool operator < (const mydate& lhs, const mydate& rhs) просто опечатка? |
| Автор: mes 15.3.2009, 16:10 |
опечатка - исправил |
| Автор: Dmi3ev 15.3.2009, 16:16 | ||
| спасибо большое всем за обсуждение... Добавлено через 3 минуты и 28 секунд кстати второй раз уже сталкиваюсь с такой вещью, что в Билдере не совсем верный код понимает как верный... в классе еще было, что тип метода не указал, те написал,допустим
а он тип по умолчанию int поставил... но в принципе запись ведь неверная... и тут тоже... в билдере работает, а в студии ошибка... |