Как получить количество объектов в перечислении в C++: методы и примеры

Чтобы получить количество объектов в перечислении в C++, вы можете использовать следующие методы:

  1. Метод 1: подсчет значений перечисления
    Пройтись по значениям перечисления и подсчитать количество присутствующих значений.

    enum MyEnum {
       Value1,
       Value2,
       Value3,
       // ...
    };
    int count = 0;
    for (MyEnum value = MyEnum::Value1; value <= MyEnum::Value3; value = static_cast<MyEnum>(static_cast<int>(value) + 1)) {
       count++;
    }
    // 'count' variable will hold the number of objects in the enum
  2. Метод 2: использование контрольного значения
    Добавьте дополнительное значение в конце перечисления, чтобы обозначить конец, и используйте это контрольное значение для определения количества объектов.

    enum MyEnum {
       Value1,
       Value2,
       Value3,
       End // Sentinel value
    };
    int count = 0;
    while (static_cast<MyEnum>(count) != MyEnum::End) {
       count++;
    }
    // 'count' variable will hold the number of objects in the enum
  3. Метод 3. Использование макроса препроцессора
    Определите макрос препроцессора для автоматического подсчета количества перечисляемых значений.

    #define ENUM_COUNT(e) (sizeof(e) / sizeof(int))
    enum MyEnum {
       Value1,
       Value2,
       Value3,
       // ...
    };
    int count = ENUM_COUNT(MyEnum);
    // 'count' variable will hold the number of objects in the enum

Эти методы позволяют определить количество объектов в перечислении в C++. Выберите метод, который подходит для вашего конкретного случая использования.