Форум программистов, компьютерный форум 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
Модератор
6543 / 5009 / 462
Регистрация: 14.02.2011
Сообщений: 16,656
07.07.2014, 18:55     If или switch().case. Что быстрее
Цитата Сообщение от Kastaneda Посмотреть сообщение
чаще всего приходится встречать такое
чаще да
но посмотри на код по ссылке

Напоследок хочется сказать, что на практике такими "дебильными" конструкциями пользуются очень и очень редко. На практике я пока только однажды встречал конструкцию, являющуюся вариацией алгоритма под названием Duff's device
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void send (int *to, const int *from, int count)
{
  int n = (count + 7) / 8;
  swith (count % 8)
  {
    case 0: do { *to++ = *from++;
    case 7:      *to++ = *from++;
    case 6:      *to++ = *from++;
    case 5:      *to++ = *from++;
    case 4:      *to++ = *from++;
    case 3:      *to++ = *from++;
    case 2:      *to++ = *from++;
    case 1:      *to++ = *from++;
            } while (--n > 0);
  }
}
кстати обсуждалась здесь
Что делает данный код и зачем такое кому-нибудь может понадобиться?

Добавлено через 2 минуты
Цитата Сообщение от Kastaneda Посмотреть сообщение
в gcc добавили удобную фишку Case Ranges, можно писать так
а если нужно вот так
C++
1
2
3
4
5
switch(n)
 {
   case 5:
   case 10:
   case 15:
то "фишкой" уже не обойдешься
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru