我具有以下在C + +枚舉;
typedef enum
{
APP_NONE = 0,
APP_SESSION = 0x80000001,
APP_TITLE = 2,
} APP_TYPE;
我寫一個測試功能,其接受字符串,獲取相關整數,例如:getEnumByString( 「APP_NONE」)= 0; 或反之則getEnumString(0)=「APP_NONE」。
它可能以及如何完成它?
我具有以下在C + +枚舉;
typedef enum
{
APP_NONE = 0,
APP_SESSION = 0x80000001,
APP_TITLE = 2,
} APP_TYPE;
我寫一個測試功能,其接受字符串,獲取相關整數,例如:getEnumByString( 「APP_NONE」)= 0; 或反之則getEnumString(0)=「APP_NONE」。
它可能以及如何完成它?
您可以將enum
值推入容器中,如向量或集合,然後遍歷該值。
std::vector<APP_TYPE> types;
types.push_back(APP_NONE);
types.push_back(APP_SESSION);
types.push_back(APP_TITLE);
可以使用映射到enum
值與一個字符串,反之亦然關聯。
std::map<APP_TYPE, std::string> type2string;
type2string[APP_NONE] = "APP_NONE";
type2string[APP_SESSION] = "APP_SESSION";
type2string[APP_TITLE] = "APP_TITLE";
更經調查是不可能的,因爲枚舉是在運行時只是整數,沒有相關的字符串名稱的信息。 –