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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
icpu
321 / 226 / 43
Регистрация: 10.03.2011
Сообщений: 1,091
Записей в блоге: 2
#1

Проход по значениям разрывного нумерованного enum - C++

12.04.2013, 22:23. Просмотров 486. Ответов 3
Метки нет (Все метки)

Всем Бобра!

Вопрос прост: как для разрывного перечисления пройти все элементы?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
enum vars {
  Sleeping = 0,
  Updating = 15,
  PANIC11 = 250,
};
 
std::map < vars,myClass > mymap;
 
for ( vars v = Sleeping; v < PANIC11; ++v)
   {
   mymap[v] = myClass(int(v));
   mymap[v].foo(bar(v));
   };
Ведь такого волшебного Фор не бывает!


Предвидя череду вопросов:
Это необходимо, например, при работе с устройствами, передающими коды своего состояния, отличные между собой более чем на 1 бит. Или просто в ВинАпи. Или в передаче данных между клиент-сервером.
Я ищу изящное и, желательно, быстрое решение.
Возможно, это проблема проектирования. Но ведь я ДАЛЕКО не первый, кто подумал о такой фиче.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2013, 22:23     Проход по значениям разрывного нумерованного enum
Посмотрите здесь:
C++ Enum == int !=enum?
C++ Проход по квадрату
Проход по лабиринту C++
Проход лабиринта в C++ C++
C++ проход по лабиринту
C++ Проход по массиву
единственный проход по массиву C++
Программу, отыскивающую проход по лабиринту C++
stl iterator обратный проход C++
C++ Сортировка массива за один проход
Проход массива с двух концов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
12.04.2013, 22:26     Проход по значениям разрывного нумерованного enum #2
глобальный константный массив таких енумов и бегать по нему. так пойдет?
icpu
321 / 226 / 43
Регистрация: 10.03.2011
Сообщений: 1,091
Записей в блоге: 2
12.04.2013, 22:33  [ТС]     Проход по значениям разрывного нумерованного enum #3
DU, немного не понял, что вы имеете в виду. Немного абсолютно полностью.
DU
1481 / 1057 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
12.04.2013, 22:38     Проход по значениям разрывного нумерованного enum #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
enum vars {
  Sleeping = 0,
  Updating = 15,
  PANIC11 = 250,
};
 
const vars ALL_VARS [] =
 {
    Sleeping,
    Updating,
    PANIC11
 };
 
 
.....
for (int i = 0; i < sizeof(ALL_VARS) / sizeof(*ALL_VARS); ++i)
{
    mymap[v] = myClass(ALL_VARS[i]);
    ....
}
.....
Yandex
Объявления
12.04.2013, 22:38     Проход по значениям разрывного нумерованного enum
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru