Форум программистов, компьютерный форум CyberForum.ru

Оператор switch - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Целое четырехзначное число заменить числом, получающимся при записи его цифр в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread443800.html
подскажите как заменить число в обратном порядке в С?
C++ Некомпилится простой код! Привет! Сразу к делу. Вот код #include <cstdlib> #include <iostream> #include <string.h> using namespace std; int main(int argc, char *argv) { unsigned long fibo; http://www.cyberforum.ru/cpp-beginners/thread443755.html
Опистать структуру с именем PRICE, содержащую следующие параметры C++
1. Опистаь структуру с именем PRICE, содержащую следующие параметры: -название товара; -название магазина в которм продаеться товар; -стоимость товара в рублях. Написать програму выполняющюю следующие действия: -вывод информаци о товаре, продающемся в магазине, название которого ввиденно с клавиатуры. -если такого магазина нет вывести на экран соответсвующее собщение. 2.Составить...
vector C++
Как я понял в С++ vector это замена динамическому массиву, как в Delphi ss : array of String; Только тут vector <string> ss; Только как с ним работать? Как задать длину? Аналог дэльфийскому SetLength тут есть?
C++ Ищу код перевода числа в строку и назад... http://www.cyberforum.ru/cpp-beginners/thread443737.html
itoa и atoi не подходят...
C++ Помогите поставить размер строки как сделать чтобы не подчёркивало l в квадратных скобках? const int l=n-m+1; char str; подробнее

Показать сообщение отдельно
Bers
Заблокирован
10.02.2012, 08:56     Оператор switch
Белая магия компилятора может превратить свитч в хитрую структуру данных, наподобие map
Где ключ - это значение case, а значение по ключу - указатель на функцию, которая запустит блок case на выполнение.

Таким образом, в боевом коде свитч не будет пошагово проверять каждое значение case, а сразу прыгнет на функцию-блок нужного case.

Точная конструкция этой хитрой структуры зависит от компилятора с его оптимизациями.
Одно можно сказать совершенно наверняка:

В целом, конструкции типа:
C++
1
2
3
4
5
int val = 100500;
if (val == 1) { ... }
if (val == 2) { ... }
...
if (val == 100500) { ... }
Компилятору оптимизировать сложнее, чем свитч с аналогичной логикой.
Поэтому, можно считать, что switсh в среднем работает быстрее, за счет того, что потенциально лучше может быть оптимизирован.

Но вообще есть нюансы. Например, если конкретный блок отработавшего case не break`неццо, то сам блок switсh не закончит свою работу, а будит продолжаться поиск уже нового претендента case

Поэтому, независимо от того, во что блок switсh превратит белая магия компилятора, но на уровне самого исходного кода порядок следования case важен. Он определяет логику работы самого блока switсh.
 
Текущее время: 05:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru