0

重複の可能性:
C ++:列挙型を反復処理します

私はc++で次の列挙型を持っています。

typedef enum
{
    APP_NONE = 0,
    APP_SESSION = 0x80000001,
    APP_TITLE = 2,
} APP_TYPE;

文字列を受け入れ、次のような関連する整数を取得するテスト関数を作成しています。getEnumByString( "APP_NONE")= 0; またはその逆getEnumString(0)="APP_NONE"。

それは可能ですか、そしてそれをどのように終えるか?

4

2 に答える 2

1

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";
于 2012-07-03T08:26:55.333 に答える
0

これをチェックしてください:http://www.codeproject.com/Articles/42035/Enum-to-String-and-Vice-Versa-in-C

于 2012-07-03T08:27:15.703 に答える