Максимальное и минимальное значения в перечислении C++



есть ли способ найти максимальное и минимальное определенные значения перечисления в c++?

546   5  

5 ответов:

нет, нет никакого способа, чтобы найти максимальные и минимальные значения любого перечисления в C++. Когда требуется такая информация, часто рекомендуется определить последнее и первое значение. Например,

enum MyPretendEnum
{
   Apples,
   Oranges,
   Pears,
   Bananas,
   First = Apples,
   Last = Bananas
};

там не должны быть названы значения для каждого значения между First и Last.

нет, не в стандартном c++. Вы можете сделать это вручную:

enum Name
{
   val0,
   val1,
   val2,
   num_values
};

num_values будет содержать количество значений в перечислении.

нет. Перечисление в C или C++ - это просто список констант. Нет более высокой структуры, которая бы содержала такую информацию.

обычно, когда мне нужна такая информация, я включаю в перечисление максимальное и минимальное значение примерно так:

enum {
  eAaa = 1,
  eBbb,
  eCccc,
  eMin = eAaaa,
  eMax = eCccc
}

см. эту веб-страницу для некоторых примеров того, как это может быть полезно:Глупые Перечисления Трюки

  enum My_enum
    {
       FIRST_VALUE = 0,

       MY_VALUE1,
       MY_VALUE2,
       ...
       MY_VALUEN,

       LAST_VALUE
    };

после определения, My_enum:: LAST_VALUE== N+1

они вам даже не нужны, я просто говорю, например, если у вас есть:

enum Name{val0,val1,val2};

Если у вас есть оператор switch и проверить, если последнее значение было достигнуто сделать следующее:

if(selectedOption>=val0 && selectedOption<=val2){

   //code
}

Comments

    Ничего не найдено.