![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
есть строка str, и в ней текст. Но вот сделать переключатель не получается:
Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
switch работает только со встроенными типами (хотя, может, только с приводимыми к целым - int, char, насчет double не знаю). Но со строками он не работает точно. Поэтому приходится использовать if - else if - ... - else:
Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
или же :
Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
понятно. что ж, Спасибо.
А вообще switch работает быстрее чем if? |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
да, switch это goto модернезированное )
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
с другой стороны, процессорное время так же тратится на присваение номера переменной i и прочего сравнения, для дальнейшей работы со switch. Даже, включая дополнительную работу, такой вариант будет быстрее обычного сравнения строк через if (на языке Си)?
Код:
|
![]() |
![]() |
![]() |
#7 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2ozo
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
раз уж пошла речь о быстродействии, заодно спрошу, если в цикле должен выполняться один код, причем тысячи раз в секунду, несомненно, размещенный прямиком в цикле код, будет быстрее работать... например
Код:
Код:
Код:
нужно вычислить адрес, передать управление, выполнить код, и вернуть управление... учитывая, что функция test() может содержать сотни строк, и выполняться в цикле тысячи раз. Отсюда вопрос: Насколько ощутима будет потеря в производительности, если я буду выполнять код не в самом цикле, а через функцию, вызывая её каждый раз? Последний раз редактировалось Артэс; 29.05.2010 в 13:40. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
Если заботитесь о быстродействии, то делайте функцию inline и, если компилятор будет к вам благосклонен, ваши проблемы решатся.
А если компилятор в плане оптимизации очень умный, то, возможно, он и без вас разберется, как в этом случае поступить.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Сейчас почитал про inline, забавно.
Получается, если компилятор примет этот запрос, то разницы в производительности между выполнением кода в цикле и через функцию совсем не будет? или даже учитывая inline, лидерство в скорости будет за кодом в самом цикле? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на switch | ProgramerBeatz | Общие вопросы C/C++ | 12 | 25.01.2011 00:59 |
switch | Dimarik | Общие вопросы C/C++ | 4 | 11.04.2010 15:56 |
switch и string??? | i-cpp | Общие вопросы C/C++ | 7 | 12.02.2010 14:58 |
SWITCH 8 портовый | SKS | Компьютерное железо | 3 | 29.01.2009 03:39 |
Switch | Division | Общие вопросы C/C++ | 3 | 11.01.2009 23:52 |