![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
код по полноте более, чем достаточен. подробнее писать принципиально не буду. ![]() Это сообщение отредактировал(а) mes - 13.1.2009, 21:59 |
|||
|
||||
Kinch |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 13.1.2009 Репутация: -1 Всего: -1 |
mes, премнога благодарен
|
|||
|
||||
UnrealMan |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
Добавлено через 58 секунд А если массив пустой? ![]() |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Хм.. Не понял намека. То end станет меньше begin и цикл не выполнится. Проблема будет в том случае, если переданный указатель будет ноль. Но это в рамки задачи не входит. aa.. или Вы для случая с итeраторами ? В этом случае да.. но дополнительные проверки делать не хотел, чтоб не путать логику. Опять же это ,имхо, не входит в рамки задачи. Это сообщение отредактировал(а) mes - 14.1.2009, 00:29 |
|||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
||||
|
||||
jonie |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
UnrealMan ну эт у тебя "написано до нас")
никто не спорит, что можно написать и так:
но нахрена так усложнять процесс.. если достаточно:
конечно, первое неимоверно "круто", но удобно имхо только если это "черный ящик".... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
При арифметике указателей ?? ![]() ну ладно..подправляю :
Это сообщение отредактировал(а) mes - 14.1.2009, 10:47 |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
||||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
в общем случае (итераторы) правильно было бы использовать для сравнения не "меньше", а "не равно". и с точки зрения --end и с точки зрения требований к итераторам в данном алгоритме
|
||||
|
|||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
Откуда такая уверенность? Ты прочитал в стандарте все правила, касающиеся префиксного декремента указателей? Я что-то не понял, в чём там заключается неимоверная крутизна и о чём вообще этот твой пост ![]() Два сравнения в цикле - это излишество. Это сообщение отредактировал(а) UnrealMan - 14.1.2009, 12:07 |
|||
|
||||
baldina |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 15 Всего: 101 |
есть альтернативные предложения? хотелось бы увидеть... пожалуйста, с учетом, что first и last это bidirectional iterator Добавлено через 2 минуты и 42 секунды для обычных указателей все гораздо проще
Добавлено через 7 минут и 8 секунд
Что именно "это"? |
||||||
|
|||||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
Итераторы произвольного доступа являются двунаправленными, но это не мешает использовать для них оператор <. Можно сделать две отдельные реализации для итераторов произвольного доступа и для других двунаправленных итераторов, вместо того чтобы следовать твоему тезису
Посмотри любую современную реализацию std::reverse в STL от VC++, GCC или в STLport. Наверняка там не будет использоваться единый алгоритм для всех двунаправленных итераторов. Если в функцию в качестве параметра end передаётся указатель на конец массива, одновременно являющийся его началом (такой массив может быть создан посредством new T[0]), а потом к end пытаются применить декремент, то такая попытка влечёт undefined behavior. Это сообщение отредактировал(а) UnrealMan - 14.1.2009, 13:55 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
UnrealMan я про то, что чет вы тут сейчас накрутите сложностей, которые автор топика не поймет... смысл тогда от них сомнителен. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |