Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переписать файл так, чтобы чередовались знаки компонент файла. http://www.cyberforum.ru/cpp-beginners/thread1223680.html
Дан файл F, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл F содержит столько же отрицательных чисел, сколько положительных. Используя вспомогательный...
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. Сумма стоимости по каждому виду перевозок; ...
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 программа не компилировалась. Я, при помощи тех, кто мне помог, определил, как нужно было... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6753 / 5162 / 493
Регистрация: 14.02.2011
Сообщений: 17,341
07.07.2014, 18:55
Цитата Сообщение от 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:
то "фишкой" уже не обойдешься
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.