Enumerations and State
Enum Arrays
An enum can choose a label from an array when its values are compact.
Enum Arrays
enum_arrays.cpp
#include <array>
#include <iostream>
#include <string>
enum class Day {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday
};
int main() {
Day day = ;
std::array<std::string, 5> labels{"Mon", "Tue", "Wed", "Thu", "Fri"};
std::array<int, 5> tasks{2, 3, 4, 3, 1};
int index = static_cast<int>(day);
std::cout << "day=" << labels[index] << std::endl;
std::cout << "tasks=" << tasks[index] << std::endl;
return 0;
}
#include <array>
#include <iostream>
#include <string>
enum class Day {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday
};
int main() {
Day day = ;
std::array<std::string, 5> labels{"Mon", "Tue", "Wed", "Thu", "Fri"};
std::array<int, 5> tasks{2, 3, 4, 3, 1};
int index = static_cast<int>(day);
std::cout << "day=" << labels[index] << std::endl;
std::cout << "tasks=" << tasks[index] << std::endl;
return 0;
}
#include <array>
#include <iostream>
#include <string>
enum class Day {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday
};
int main() {
Day day = ;
std::array<std::string, 5> labels{"Mon", "Tue", "Wed", "Thu", "Fri"};
std::array<int, 5> tasks{2, 3, 4, 3, 1};
int index = static_cast<int>(day);
std::cout << "day=" << labels[index] << std::endl;
std::cout << "tasks=" << tasks[index] << std::endl;
return 0;
}
enum index
Casting a compact enum to an integer can select related data from an array.