Здравствуйте, Lonely Dog, Вы писали:
LD>Добрый день!
LD>В реальности, в этом if гораздо больше условий. На питоне я бы написал это так: LD>А можно ли что-нибудь такое написать на C++, как-нибудь сократить код?
if (confirms_all_conditions(status)) // ...
Re[2]: Проверка, что строка равна одному из значений
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, Lonely Dog, Вы писали:
LD>>Добрый день!
LD>>В реальности, в этом if гораздо больше условий. На питоне я бы написал это так: LD>>А можно ли что-нибудь такое написать на C++, как-нибудь сократить код? _>
_>if (confirms_all_conditions(status)) // ...
_>
так а дальше что? в функции будет тот же самый большой if с кучей условий
LD>А можно ли что-нибудь такое написать на C++, как-нибудь сократить код?
Радость ты моя, а заранее все эти строки запихать в контейнер — никак?
Вместо вложенных ифов — просто найти в контейнере и сделать, чего с ним связано.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Проверка, что строка равна одному из значений
Здравствуйте, LaptevVV, Вы писали:
LD>>А можно ли что-нибудь такое написать на C++, как-нибудь сократить код? LVV>Радость ты моя, а заранее все эти строки запихать в контейнер — никак? LVV>Вместо вложенных ифов — просто найти в контейнере и сделать, чего с ним связано.
Да можно наверное. Что-нибудь типа такого?
Здравствуйте, Lonely Dog, Вы писали:
LD> LD>>А можно ли что-нибудь такое написать на C++, как-нибудь сократить код?
LD> LVV>Радость ты моя, а заранее все эти строки запихать в контейнер — никак? LD> LVV>Вместо вложенных ифов — просто найти в контейнере и сделать, чего с ним связано. LD> Да можно наверное. Что-нибудь типа такого? LD>
Здравствуйте, niXman, Вы писали:
X>линейная сложность.
Само собой. Но когда вариантов не так много (не забываем, что раньше в коде была куча условий в одном if, и тоже линейная сложность), то это вполне допустимо. Тем более, создание hash_set (или еще чего-нибудь) займет явно больше времени, чем простой проход по этому списку.
Re[5]: Проверка, что строка равна одному из значений
Здравствуйте, Lonely Dog, Вы писали:
LD>... создание hash_set (или еще чего-нибудь) займет явно больше времени, чем простой проход по этому списку.
посмотрите мой пример, в нем set будет инициализирован только один раз.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[6]: Проверка, что строка равна одному из значений
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, Lonely Dog, Вы писали:
LD>>... создание hash_set (или еще чего-нибудь) займет явно больше времени, чем простой проход по этому списку. X>посмотрите мой пример, в нем set будет инициализирован только один раз.
Посмотрел, осознал. Спасибо.
Re[5]: Проверка, что строка равна одному из значений
Здравствуйте, LuciferSaratov, Вы писали:
LS> DC>А что, это можно сделать быстрее, чем О(n) ? LS> DC>Поделись мудростью. LS> можно список строк (или их хэшей) заранее отсортировать и искать в нем двоичным поиском, например.
Здравствуйте, DenisCh, Вы писали:
DC>А сортировка строк быстрее?
ну дык в вопросе топикстартера список предполагается быть заранее заданным и неизменным в процессе работы программы, поэтому его можно или сразу задать отсортированным, либо отсортировать один раз перед началом работы.
Re[4]: Проверка, что строка равна одному из значений
Здравствуйте, niXman, Вы писали:
X>Здравствуйте, _NN_, Вы писали:
_NN>>Python код также будет с линейной сложностью в этом примере
X>в пайтоне это норма, но мы в плюсах так не делаем.
Лёгким движением [1,2,3] заменяем на {1,2,3} и получаем в пайтоне быстрый поиск.
Здравствуйте, _NN_, Вы писали:
_NN>Лёгким движением [1,2,3] заменяем на {1,2,3} и получаем в пайтоне быстрый поиск.
но ни один питонщик об этом не задумается.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)