ルックを受け入れることはできません「のstd :: cinを>> O」で「演算子>>」の一致を 私はコードブロックを使用しています。だからこのコードで何が間違っていますか?列挙型は、CINコマンドにこのコードプラザトン
答えて
enumの演算子>>()はありません。
std::istream& operator>>(std::istream& is, object& i)
{
int tmp ;
if (is >> tmp)
i = static_cast<object>(tmp) ;
return is ;
}
整数をシンクして自分自身をキャストすれば、もちろん簡単です。 cin >>演算子を書く方法を見せたいだけです。
"s"、 "k"、または "g"と入力して列挙型に解析できると思われますか?もしそうなら、あなたはこのように、あなた自身のストリーム演算子を定義する必要があります。
std::istream& operator>>(std::istream& is, object& obj) {
std::string text;
if (is >> text) {
if (is == "s") {
obj = s;
}
// TODO: else-if blocks for other values
// TODO: else block to set the stream state to failed
}
return is;
}
単なる文字であれば、より簡単なコードを読むために 'char' +' switch'があります。それ以外の場合は、 'unordered_map
私はスイッチのことに同意しますが、入力が長さ1であることのチェックで私の答えを複雑にしたくありませんでした。しかし、それは効率的なデータ構造ではないので、unordered_mapの使用に同意しません。値。より多くのデータ駆動型が必要な場合は、std :: pairsの配列を提案し、ちょうどいくつかの要素がある場合は、std :: findを使用して線形検索を行います。そこからバイナリ検索に簡単に移動したり、数千人のプレイヤーがいつでもハッシュテーブルを構築することも簡単です。 :) –
時間の97%、効率的なことを心配しないでください;) 'unordered_map'は、キーによるルックアップのための自然なインターフェースを提供するので、そのままで動作します。効率を上げるためには、コンストラクタを避け、PODから配列を構築して静的初期化中に完全に初期化を行い、 'malloc' /' new'呼び出しを必要としないようにする必要があります。少しの報酬。 KISSは 'unordered_map'や' map'と言っています。 –
- 1. のPostgreSQL:これは、列挙型の定義で列挙型
- 2. DBの列挙型または列挙型の列挙型
- 3. 列挙型の列挙型の列挙型へのアクセス
- 4. はどのように列挙型に列挙型
- 5. 列挙型の中の列挙型
- 6. 列挙型の列挙型の作成
- 7. 列挙型内の列挙型
- 8. は、列挙型
- 9. 列挙型は
- 10. 列挙型は
- 11. 列挙型は
- 12. は、列挙型
- 13. 列挙型は
- 14. 列挙型に
- 15. Javaの列挙型は、私は列挙型を持つ条約
- 16. 列挙型の
- 17. のtypedefと列挙型または列挙型クラス
- 18. マッチング列挙型は
- 19. バインディングフラグ列挙型は
- 20. サイクルは、列挙型
- 21. 列挙型データ型
- 22. int型/列挙型
- 23. 多型列挙型
- 24. だけがプリミティブ型または列挙型は、この文脈
- 25. Javaの列挙は、私はこのような列挙型クラスを持つインデックス
- 26. 列挙型基になる型は
- 27. WPFデータ列挙型の列挙
- 28. Elasticsearch - 列挙型のデータ型
- 29. 列挙型?
- 30. 列挙型プログラム
ここで探してみてください。 http://stackoverflow.com/questions/9220599/error-no-match-for-operator-in -stdcin-stopat いくつかの洞察を提供する必要があります。 –