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

If или switch().case. Что быстрее - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переписать файл так, чтобы чередовались знаки компонент файла. http://www.cyberforum.ru/cpp-beginners/thread1223680.html
Дан файл F, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл F содержит столько же отрицательных чисел, сколько положительных. Используя вспомогательный файл H, переписать компоненты файла F в файл G так, чтобы в файле G не было двух соседних компонент с одним знаком.
C++ Странная перегрузка операторов (Error: ambiguous overload for 'operator[]') Что-то я туплю. Есть код: #include<string> struct test { int operator(const std::string&)const{return 0;} operator int()const{return 0;} }; int main() { test t; http://www.cyberforum.ru/cpp-beginners/thread1223655.html
C++ Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток
Заполнить двухмерный вектор таблицей умножения и вывести его в выходной поток. То, что я написал: #include <vector> #include <iostream> #include <iomanip> using namespace std;
Найти общую сумму стоимости всех перевозок и отдельно по каждому виду. C++
Помогите 2 задания зделать полчиса сижу никак зделать не могу тут легко я просто чтота вдуплить не могу 2. Общая сумма стоимости всех перевозок; 3. Сумма стоимости по каждому виду перевозок; #include <iostream> using namespace std; #pragma warning (disable: 4996) int sum;
C++ Как объявить массив структур? http://www.cyberforum.ru/cpp-beginners/thread1223596.html
Как задать массив в С++? Type gostinica= record FIO:string; nomer:integer; cena: integer; kolvo: integer; itogo:integer; end; Var
C++ Программа, во время выполнения, после ввода, прекращает работу Проблема такая: Предисловие... Недавно я уже обращался сюда на форум из-за того, что с функцией randomize программа не компилировалась. Я, при помощи тех, кто мне помог, определил, как нужно было решить проблему.Ну и, собственно, решил проблему. Переделал все как требуется. Сначала скомпилировал программу: все верно. Запустил: спрашивает "введите размер массива:", я ему ввожу "3" (ради... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
07.07.2014, 19:20     If или switch().case. Что быстрее
лень придумывать примеры
вот кусок дезасемблированой реальной программы

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
 cmp     ecx, 7                          ; switch 8 cases
ja      short loc_20495F                ; default
jmp     ds:off_204970[ecx*4]    
...................
 
off_204970 dd offset loc_2048F5  
                dd offset loc_2048F8 
                dd offset loc_204911
                dd offset loc_204916
                dd offset loc_20491B
                dd offset loc_20491B
                dd offset loc_2048FB
                dd offset loc_20490C
один из вариантов работы свитча
кучей сравнений и не пахнет

Добавлено через 2 минуты
Цитата Сообщение от RaiaNKnight Посмотреть сообщение
который был дан выше разницы никакой.
еще раз повторю? разница огромная
в первом случае при a=2 отработают два if
так что пример ТС некорректен для исследования
 
Текущее время: 17:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru