Possible Duplicate:
C++: Iterate through an enum
我在 C++ 中有以下枚举;
typedef enum
{
APP_NONE = 0,
APP_SESSION = 0x80000001,
APP_TITLE = 2,
} APP_TYPE;
我正在写一个测试函数,它接受一个字符串,得到相关的整数,比如:getEnumByString("APP_NONE") = 0;
或者反之亦然 getEnumString(0)="APP_NONE".
是否可能,如何完成?
您可以将 enum
值推送到一个容器中,例如 vector 或集合,然后对其进行迭代。
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";