std::map<any, string>
私はそこに別のアプローチがあるのだろうかと疑問に思っています にはアルバイトキーがありますか?std :: map(または類似のもの)でboost.anyをキーとして使用できますか?
答えて
私は問題がBoost::Any
ではなく、あなたがカスタムコンパレータを指定していないという事実ではないと思います。 map
はソートされた連想コンテナなので、コンパレータが必要です。
私のために、次の作品:それはあなたの目的に応じてオーダーメイド:
#include <iostream>
#include <map>
#include <boost/any.hpp>
using namespace std;
struct cmp {
bool operator()(const boost::any& l, const boost::any& r) {
try
{
int left = boost::any_cast<int>(l);
int right = boost::any_cast<int>(r);
return left < right;
}
catch(const boost::bad_any_cast &)
{
return false;
}
return false;
}
};
int main() {
map<boost::any, string, cmp> ma;
boost::any to_append = 42;
ma.insert(std::make_pair(to_append, "int"));
if (ma.find(42) != ma.end()) {
cout << "hurray!\n";
}
return 0;
}
比較ファンクタはマップで使用するには無効です。一部の(a、b)ペアで
例が良いでしょう。とにかく、私はコンパレータが失敗するところでもっと多くのケースが構築できると思います。タイプ間で順序付けを行うという非常に良い考えは、私にとっては良いことではありません。 – dirkgently
例は、1つの(a)が含まれintで、もう1つの(b)が文字列を含む任意のペアです。あなたのコンパレータは、
あなたが使用しているすべてのタイプが同等であることを確認することができますので、あなたは、boost::variant
はなくboost::any
で見たいと思うかもしれません。
訪問者を使用すると、variant
の比較演算子を提供する最も良い方法になります。
- 1. std :: mapをstd :: mapのキーとして使用する
- 2. std :: mapをstd :: stringキーとintキーで使用するコスト?
- 3. std :: mapのstd :: reference_wrapperをキーとして使用する
- 4. TypeGoScriptをPhoneGap(または類似のもの)と組み合わせて使用できますか?
- 5. std :: multimapでstd :: pairをキーとして使用できますか?
- 6. std :: mapの内部でCComPtrを使用できますか?
- 7. std :: map:挿入されたキーをコピーして移動できますか?
- 8. std :: mapのキーとしてのテンプレートの使用
- 9. Doxygenがstd :: shared_ptrまたはstd :: mapを認識できるか
- 10. mvc timespanまたは類似のもの
- 11. 境界キーが存在しない場合でもstd :: mapキー範囲を反復処理できますか?
- 12. std :: mapを使用したキーの部分一致
- 13. 他の類似クラスを使用することはできますか?
- 14. GloVeを使用して最も類似した単語を取得します。
- 15. 文字列の解析 - 正規表現または類似のものを使用していますか?
- 16. VBA - リストに類似したものはありますか?
- 17. ネストされたフィールドにもっと類似のクエリを使用できますか?
- 18. ベクトル<int>をstd :: mapのキーとして使用する方法はありますか?
- 19. C++ - クラス名をstd :: mapのキーとして使用する方法はありますか?
- 20. std :: mapをrvalueとして作成することはできますか?
- 21. CSSセレクタの「until」に類似したものは何ですか?
- 22. モデルのapplication_helperまたはapplication_controllerに類似したものはありますか?
- 23. SWIG:shared_ptrでstd :: mapアクセサを使用しますか?
- 24. COMオブジェクトでstd :: mapを使用しますか?
- 25. map ::類似しているがkey_typeに変換できない型のfind
- 26. ブートストラップ行/列システムに類似した反応ネイティブフレックスを使用できますか?
- 27. Google Stock Screenerで使用されているものに類似したスクリーニングツールはどこにありますか?
- 28. Objective-C++のキーとしてNSStringを使用する方法std :: map
- 29. キーを使用してstd :: mapからエントリを削除する方法は?
- 30. std :: mapを使用しているときのエラー
あなたは何をしたいですか? – Skurmedel
anyキーはどこですか? – Artelius
どのように私はstackoverflowの中でテンプレートパラメータを投稿できますか? – DaVinci