2009-02-03 122 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));