Ho un pezzo di codice molto simile a questo:Associare un char a un tipo enum
class someclass
{
public:
enum Section{START,MID,END};
vector<Section> Full;
void ex(){
for(int i=0;i<Full.size();i++)
{
switch (Full[i])
{
case START :
cout<<"S";
break;
case MID :
cout<<"M";
break;
case END:
cout<<"E";
break;
}
}
}
};
Ora immaginate ho molto di più tipi enum e i loro nomi sono più .... bene quello che ottengo non è un buon codice di ricerca e mi chiedevo se possibile associare un char specifico per un tipo enum e forse fare qualcosa di simile:
for(int i=0;i<Full.size();i++)
{
cout<(Full[i]).MyChar();
}
o qualsiasi altro metodo che potrebbe rendere questo codice "più bella". È possibile?
Si può sempre avere un 'std :: map', ma io non sono certo che il codice risulterebbe più pulito con un set di valori così piccolo. Per lo meno si potrebbe incapsulare la conversione all'interno di una funzione in modo da poterla riutilizzare. –
cdhowie
Un 'std :: map' sembra eccessivo qui, un semplice array è sufficiente:' cout << "SME" [Full [i]] '. (Ciò richiede ancora miglioramenti per la gestibilità e la sicurezza.) – hvd
Potrebbe essere anche un caso per l'intestazione #define. #define START 'S' ... –