Определяемый пользователем тип данных объявляется с помощью перечисления, содержащего набор констант. Это упрощает чтение кода и управление им. Ключевое слово enum используется для определения перечисления. Конкретный набор значений определяется перечислением. Значения, которые используются в перечислении, называются счетчиками. Значения перечисления можно легко проанализировать и использовать в операторе switch. В этом руководстве были показаны различные варианты использования перечисления в C ++.
Синтаксис:
Синтаксис объявления перечисления приведен ниже. Перечисление используется ключевое слово, чтобы объявить тип данных перечисления, и имена перечислений значений разделены запятой (,). Кроме того, значение по умолчанию для перечисления начинается с 0.
enum enum-type-name { v1, v2, v3…..vn };
Пример 1: преобразование числа в значения перечисления
Способ преобразования любого числового значения в значение перечисления показан в следующем примере. В коде объявлено перечисление из 12 элементов. У пользователя будет взято целочисленное значение. Если входное значение находится в пределах от 0 до 11, то значение будет преобразовано в значение перечисления. Далее позиция месяца будет установлена на основе значения перечисления, а форматированная строка будет напечатана позже:
//Include necessary library
#include <iostream>
using namespace std;int main()
{
//Declare the enum
enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };
//Declare necessary variables
Month enumVar;
string mVal, pos = «th»;
int mNum;//Take any integer value from the user
cout <> mNum;
//Check the input
if(mNum >=0 && mNum <=11)
{
//Convert the number into enum
enumVar = (Month)mNum;if (enumVar+1 == 1)
pos = «st»;
else if(enumVar+1 == 2)
pos = «nd»;
else if(enumVar+1 == 3)
pos = «rd»;
cout << «The « << enumVar + 1 << pos <<» month of the year.» << «\n«;}
else
cout << «Invalid number.»;
return 0;
}
Выход:
Следующий вывод появится после выполнения вышеуказанного кода, если в качестве входного значения будет выбрано 6:
Пример 2: преобразование значений перечисления в строку
В предыдущем примере был получен доступ к значению переменной enum. Однако, если вы хотите напечатать конкретный текст для определенного значения перечисления, вам необходимо использовать условный оператор. Способ преобразования значения перечисления в строку с помощью оператора case case показан в следующем примере. Перечисление из 7 элементов было объявлено в коде, где имена перечисления являются именами 7-дневных дней. После ввода от 0 до 6 значение соответствующего значения перечисления будет преобразовано в название дня недели с помощью оператора switch. Конвертированное значение будет напечатано позже.
//Include necessary library
#include <iostream>
using namespace std;//Declare the enum
enum Weekdays { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };/*
The function will convert the enum values
into the string value
*/
void convert_to_string(Weekdays wVal)
{
string weekday;
switch(wVal) {
case Sunday:
weekday = «Sunday»;
break;
case Monday:
weekday = «Monday»;
break;
case Tuesday:
weekday = «Tuesday»;
break;
case Wednesday:
weekday = «Wednesday»;
break;
case Thursday:
weekday = «Thursday»;
break;
case Friday:
weekday = «Friday»;
break;
case Saturday:
weekday = «Saturday»;
}cout << «The weekday name is « << weekday << «\n«;
}
int main()
{
//Declare necessary variables
Weekdays enumVar;
string wVal;
int mNum;//Take any integer value from the user
cout <> mNum;
//Check the input
if(mNum >=0 && mNum <=6)
{
enumVar = (Weekdays)mNum;
convert_to_string(enumVar);
}
else
cout << «Invalid number.»;return 0;
}
Выход:
Следующий вывод появится после выполнения вышеуказанного кода, если 3 будет принято в качестве входного значения:
Пример 3: Установите разные значения для Enum
Ранее упоминалось, что начальное значение по умолчанию для перечисления равно 0. Способ объявления перечисления — это определение каждого значения отдельно и доступ к конкретному значению, как показано в следующем примере. В коде объявлено перечисление из 5 элементов, где каждому элементу присвоено непоследовательное значение. Значение «Синий» будет напечатано позже:
//Include necessary library
#include <iostream>using namespace std;
int main() {
//Declare the enum
enum colors { Red = 10, Green = 30, Blue = 20, White = 40, Black = 50};//Declare enum variable with value
colors enumCol = Blue;//Print the value of the enum
cout << «The value of ‘Blue’ is : « << enumCol << «\n«;return 0;
}
Выход:
После выполнения вышеуказанного кода появится следующий вывод:
Пример 4: Подсчитайте размер Enum
Способ подсчета размера перечисления показан в следующем примере. В коде объявлено перечисление из 5 элементов. Переменная счетчика использовалась для подсчета общего количества элементов перечисления. Цикл «for» использовался для перебора значений перечисления от начала до конца и увеличения значения переменной счетчика на единицу в каждой итерации.
//Include necessary library
#include <iostream>using namespace std;
int main()
{
//Declare the enum
enum marks {CT, Attendence, Assignment, Mid, Final };
//Initialize the counter variable
int counter = 1;/*
Iterate the values of the enum using loop
to count the total number of elements of the enum
*/
for(int i = CT; i < Final; i++)
{
counter++;
}cout << «Total number of elements is: « << counter << «\n«;
return 0;
}
Выход:
После выполнения вышеуказанного кода появится следующий вывод:
Заключение
Перечисление можно использовать для решения различных типов задач программирования на C ++. Цель использования перечисления описана здесь на различных примерах. Я надеюсь, что новые программисты на C ++ смогут понять использование перечисления и правильно применить его в своем коде после прочтения этого руководства.