0
How to write an array using enum in c++
https://code.sololearn.com/cYGTR71vuBBt/?ref=app I tried doing this code but I can't get my expected result. how do I write its source code ?
1 Respuesta
+ 1
Why?
Enums are just a bunch of integers below the hood.
The only way to write them to an array is to write them yourself like:
enum X
{
A,B,C,D,E
};
int arr[ 5 ] = { A, B, C, D, E };
Since an enum starts at 0, this is the same as doing
int arr[ 5 ] = { 0, 1, 2, 3, 4 };
They are NOT strings, so what you are doing ( or trying to ) is not possible like that.
You could however use a translation function, usually implemented with a switch:
#include <iostream>
enum X
{
A,B,C,D,E
};
std::string XtoString( X i )
{
switch( i )
{
case A:
return "A";
case B:
return "B";
case C:
return "C";
// etc...
}
}
#define x(i) XtoString(i)
int main()
{
std::string arr[ 3 ] = { x(A), x(B), x(C) };
for( auto i: arr )
std::cout << i << std::endl;
}
You may want to rethink some things ^^