[解決済み] (enumの項目を数えるには?
2022-11-25 15:13:24
質問
この質問は、次のようなときに思いつきました。
enum Folders {FA, FB, FC};
で、各フォルダに対してコンテナの配列を作成したいと考えました。
ContainerClass*m_containers[3];
....
m_containers[FA] = ...; // etc.
(マップを使うとよりエレガントです。
std::map<Folders, ContainerClass*> m_containers;
)
しかし、私の最初の質問に戻ってきます。配列のサイズをハードコードしたくない場合、フォルダーにいくつのアイテムがあるのかを把握する方法はありますか?(例えば
FC
がリストの最後の項目であることに依存せず、次のようなことを可能にします。
ContainerClass*m_containers[FC+1]
のようになります。)
どのように解決するのですか?
これを行うための良い方法はありません。通常は、列挙の中に余分な項目が表示されます。
enum foobar {foo, bar, baz, quz, FOOBAR_NR_ITEMS};
では、できるようになります。
int fuz[FOOBAR_NR_ITEMS];
それでもあまりいいとは言えませんが。
しかし、もちろん、enumの項目の数だけでは安全でないことは、例えば、与えられた
enum foobar {foo, bar = 5, baz, quz = 20};
の場合、項目数は4となりますが、enum値の整数値は配列のインデックス範囲から大きく外れてしまいます。配列のインデックスにenum値を使用することは安全ではないので、他のオプションを検討する必要があります。
edit: 要望があったので、特別なエントリをより目立つようにしました。
関連
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み] enumを列挙するには
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] リスト項目の出現回数を数えるにはどうしたらいいですか?
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] C++プリプロセッサ __VA_ARGS__ 引数の個数