枚举到stringC ++
可能重复:
有一个简单的脚本来将C ++枚举转换为string吗?
我通常发现我需要将枚举转换为c + +中的string
我总是这样做:
enum Enum{ Banana, Orange, Apple } ; char * getTextForEnum( int enumVal ) { switch( enumVal ) { case Enum::Banana: return "bananas & monkeys"; case Enum::Orange: return "Round and orange"; case Enum::Apple: return "APPLE" ; default: return "Not recognized.."; } } 有这样一个更好的或公认的成语吗?
 enum Enum{ Banana, Orange, Apple } ; static const char * EnumStrings[] = { "bananas & monkeys", "Round and orange", "APPLE" }; const char * getTextForEnum( int enumVal ) { return EnumStrings[enumVal]; } 
一种匿名查询表,而不是一个长的switch语句:
 return (const char *[]) { "bananas & monkeys", "Round and orange", "APPLE", }[enumVal]; 
你可以把枚举值和string放入STL映射中。 那么你可以像这样使用它。
  return myStringMap[Enum::Apple];