ホームページ > バックエンド開発 > C++ > C の列挙型を文字列に効率的にマップするにはどうすればよいですか?

C の列挙型を文字列に効率的にマップするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-21 12:59:10
オリジナル
245 人が閲覧しました

How Can I Efficiently Map C   Enums to Strings?

C 列挙型を文字列に効率的にマップする方法

C 列挙型を使用する場合、値をユーザー形式に変換する必要が生じる場合があります。定義された文字列、またはその逆。ブルート フォース アプローチには一連の switch ステートメントが含まれる可能性がありますが、より洗練されたソリューションも利用できます。

Std::map の使用

列挙型をマッピングするための信頼できる方法文字列に変換するには、 std::map を使用します。このアプローチにより、マップ内での文字列コピーの作成が回避され、効率的な検索が可能になります。

Syntactic Sugar: Map_init Helper Class

読みやすさを向上させるには、map_init クラスの使用を検討してください。このクラスはマップを初期化し、エントリを追加するための便利な構文を提供します。

std::map<MyEnum, const char*> MyMap;
map_init(MyMap)
    (eValue1, "A")
    (eValue2, "B")
    (eValue3, "C")
;
ログイン後にコピー

このクラスは、エントリの連鎖を可能にする map_init_helper 構造体を使用します。

Boost::assign を利用する

カスタム ヘルパーを作成したくない場合は、次のようにすることができます。 Boost::assign ライブラリを利用します。これは、マップとその他のマップに似た構造の両方に同様の機能を提供します。

結論

ただし、ここで説明するテクニックは必ずしも同じではないかもしれません。 RTTI を使用するのと同じように簡潔であり、C enum を文字列にマッピングするためのよりカスタマイズされた柔軟なアプローチを提供し、カスタム文字列表現や簡単さなどの特定の要件に応えます。メンテナンス。

以上がC の列挙型を文字列に効率的にマップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート