![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
SABROG, код ужаснул меня...
|
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Меня самого он ужасает, иногда прежде чем думать про оптимизацию сначала стоит задача сделать так, чтобы работало хоть как-то, чтобы понять в правильном вообще направлении я иду или нет. Уже 2 раза переписывал ядро программы. Причем иногда очевидные вещи даже в голову не приходят.
Если бы там были только текстовые данные, так там ведь может быть что угодно вообще. Одним toString() не обойдешься. Там и toDouble, и toUInt(), и toInt(). Причем в некоторых случаях int надо преобразовывать в указатель. По сути под каждый уникальный параметр (не тип!) свое действие. Это сообщение отредактировал(а) SABROG - 25.4.2008, 14:01 |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
смотри в сторону перегрузки метода Добавлено через 2 минуты и 12 секунд в данном примере не оптимизация, а построение логики |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Смотрел и шаблоны смотрел. Не особо меня радует это. Сделал вариант со свичем:
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
P.S. для уникальных типов - уникальные операции
P.S.S кстати насчет строковых имен - я бы посоветовал бы использовать вместо них строковые константы Преимушества: 1. при опечатке компилятор заметит 2. при смене имени ключа не стоит переживать что где то в теле завбудешь исправить имя 3. переменная может быдь названа более удобным способом -(например если ключ слишком длинный) 4. и многое другое)) |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Мда... Читать, если честно, ужасно
![]() ![]() ЗЫ Функции больше 15 строчек есть зло! |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
ты не прав, есть ф-ии где по другому не обойтись. Да и в большинстве своем они больше 15 строчек... |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
значит функции злые - не всем же им добрыми быть)) |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Экстрактить в отдельный метод ![]() |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Это когда получается. А бывает, что надо заводить структуры на 5-10 параметров... ага. И в итоге код получается в два раза больше... и ни фига не понятнее. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
И вообще, не надо впадать в крайности. Согласен, код функции, занимающий более 15-20 строчек, вызывает напряги. Но иногда невозможно разделить большую функцию на несколько маленьких (например, контекст огромный). Так же и с goto - в большинстве случаев он не нужен, но иногда (выход из вложенного цикла, например) он предпочтителен, так как и быстрей, и наглядней, по моему.
|
|||
|
||||
MAKCim |
|
||||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
так может быть переполнение стека
замени в моем предыдущем примере статический массив динамическим ![]()
чем больше состояний, тем больше среднее время выполнения одной итерации
наводит на мысль о двоичном поиске в таком случае, но не об O(1) т. е
и number = 4 при "тупой" реализации switch/case нужно 5 проверок при реализации двоичного поиска 2-3 но никак не 1 соответственно число сравнений возрастает с увеличением числа case Добавлено через 3 минуты и 39 секунд
смотря кто писАл код ![]() Это сообщение отредактировал(а) MAKCim - 25.4.2008, 20:40 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||||
|
|||||||||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
не совсем понял .. что именно вызывает переполнение в отличие от "оригинального" примера? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |