2009-02-03 79 views

回答

0

您可能需要使用std :: map或hash_map数据结构。

+0

或boost/TR1 unordered_map(而不是非标准hash_map) – Reunanen 2009-02-03 19:44:49

0
#include <EnumString.h> 

http://codeproject.com/Articles/42035/Enum-to-String-and-Vice-Versa-in-C

enum FORM { 
    F_NONE = 0, 
    F_BOX, 
    F_CUBE, 
    F_SPHERE, 
}; 

插入

Begin_Enum_String(FORM) 
{ 
    Enum_String(F_NONE); 
    Enum_String(F_BOX); 
    Enum_String(F_CUBE); 
    Enum_String(F_SPHERE); 
} 
End_Enum_String; 

做工精细,如果枚举值没有dublicate 。

代码

enum FORM f = ... 
const std::string& str = EnumString<FORM>::From(f); 

,反之亦然

assert(EnumString<FORM>::To(f, str));