Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
16 / 16 / 1
Регистрация: 27.02.2017
Сообщений: 197

Чем заменить switch

31.03.2017, 03:41. Показов 8919. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста , имеется вот такая конструкция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 char *bufOut = new char[pRecSize * pCol]; // Адрес буфера для присылаемых записей.
 
 ..........   буфер заполняется .............
 
 char *p = bufOut; 
 
for (long i = 0; i < pStr; i++)//идем по строкам
    {
 
        for (int j = 0; j < pCol ; ++j)// идем по колонкам
        {
 
            switch (infCol[j].type)// в зависимости от типа колонки преобразовываем в соответствующий тип
            {
             ........
            }
 
            p += infCol[j].len;
 
        }
то есть это такой разбор строки байтов в зависимости от типа (тип лежит в infCol[j].type )

подскажите как чем можно заменить такую конструкцию , ибо вот эта очень медленная
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2017, 03:41
Ответы с готовыми решениями:

Чем можно заменить Switch -- case ?
Доброго времени суток, уважаемые форумчане! Помогите решить проблему с case. В этой программе нужно создать множественный выбор, который...

В чём отличие switch и if?
Препод задал вопрос, я ответил, то что switch использует только int и char, возвращается не логическое выражение, а целое... Она...

Оператор switch. В чем ошибка?
Почему Свитч не отрабатывает? После ввода ans1 выводиться вопрос для цикла ДуВаил. Где я торможу? :( #include &quot;stdafx.h&quot; ...

23
16 / 16 / 1
Регистрация: 27.02.2017
Сообщений: 197
09.04.2017, 04:24  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DU3 Посмотреть сообщение
вариантов диспетчиризации свитч наверно самый быстрый.
да убедился что это так и есть

Добавлено через 29 секунд
Цитата Сообщение от DU3 Посмотреть сообщение
но такой подход херово расширается и поддерживается.
как раз это не надо

Добавлено через 3 минуты
единственное сейчас осталося такой вопрос , при проходе по строкам каждый раз читаем и определаем тип данных ,
а можно ли как то что бы читать в какую то структуру что ли ,
я попробывал в датаТабл а потом датаТабл сразу датаГрид
может как то покросивей можно
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
09.04.2017, 07:41
Цитата Сообщение от fssf11 Посмотреть сообщение
может как то покросивей можно
Посмотрите как эти вопросы в VCL реализованы. Все на порядок красивше. И биндинг и парсинг без свичей. и биндинг вывода к таблицам и другим типам контролов. Сырцы этого дела к дельфе/билдеру прилагаются.
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
09.04.2017, 10:55
Я тоже задачу не понимаю.

Я её вижу так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <random>
#include <string>
 
using namespace std;
 
int main() {
 
    random_device rd;
    mt19937 gen(rd());
    uniform_int_distribution<> dist(1,6);
 
    constexpr int N = 1000;
    constexpr int M = 10;
    constexpr int L = 1000;
 
    string S;
 
   for (auto i=0; i<L;i++){
    for (auto j = 0; j < N; ++j) {
        for (auto k=0; k<M; ++k){
                switch (dist(gen)){
                   case 1: S+= to_string(1); break;
                   case 2: S+= to_string(2); break;
                   case 3: S+= to_string(3); break;
                   case 4: S+= to_string(4); break;
                   case 5: S+= to_string(5); break;
                }
           S+=' ';
        }
        S+='\n';
    }
    S+="\n===========\n";
   }
 
    cout << S;
}
Во всём switch виноват, компиляторы и что угодно, но только не вывод на экран.
1
16 / 16 / 1
Регистрация: 27.02.2017
Сообщений: 197
09.04.2017, 23:21  [ТС]
Всем большое спасибо , оказалось что не свиче дело , а в преобразовании в нужный тип, но это уже другая история
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2017, 23:21

Чем можно заменить дефолт в switch-е?
Вобщем есть три команды, мышь двигается, крутится колесо, и еще одна команда которую хотел сделать в дефолте это &quot;The mouse...

сма DAEWOO DWD M1029A чем заменить транс, трансформатор в обрыве, чем заменить
день добрый. модуль PN:361430A950 первичная транса в обрыве . может кто подскажет параметры , или советом о замене . есть лыжевский на...

заменить if на switch
Привет народ :), возможно как то изменить данную функцию: if(isset($_POST)){ $selectedOption = $_POST; if($selectedOption ==...

Switch ( в чем ошибка???)
вот есть процедура для 3 Image (onClick) - общая процедура Image1 имеет Tag=1; image2 имеет Tag=2; Image3 имеет Tag=3; Есть поле...

Множественные IF заменить на switch
if (k==0x0EFF) PORTD=0b10111111; if (k==0x0FEF) PORTD=0b01111111; if (k==0x0FFE) PORTD=0b11011111; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru