問題タブ [bimap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3069 参照

java - Java:GoogleコレクションのHashBiMapをインスタンス化します

私はEclipseを使用してgoogle-collect.1.0-rc2.jarおり、参照ライブラリとして追加しました。しかし、どういうわけか、これはまだ機能しません:

Eclipseでは次のエラーが発生します。

この行に複数のマーカー

  • HashBiMapを解決できません
  • Character.Integerを解決できません
  • トークン"、"、"。"の構文エラー 期待される
  • トークン「。」の構文エラー、このトークンを削除します
  • メソッドcreate()は、クラスOdpに対して未定義です。

私は何が間違っているのですか?

ジョイナーのような他のグーグルのものはうまく機能します。(ただし、Joinerはジェネリックではありません。)

0 投票する
3 に答える
12748 参照

java - Java で Google コレクションの BiMap をインスタンス化するには

BimapGoogle コレクションのインスタンスを作成するにはどうすればよいですか?

質問Java: Instantiate Google Collection's HashBiMapを読みました

私のコードのサンプル

私は得るcannot instantiate the type BiMap<String, Integer>

0 投票する
1 に答える
7776 参照

c++ - C++ での Boost Bimap の使用

C++ Boost には双方向マップである Bimap コンテナがあります: http://www.boost.org/doc/libs/1_43_0/libs/bimap/doc/html/index.html

Boost::bimap のパフォーマンスを知っている人はいますか? つまり、マップ内の要素にアクセスする時間の複雑さはどれくらいですか? unordered_map アクセス (O(1)) と同じくらい速いですか?

ありがとう!

0 投票する
1 に答える
1336 参照

c++ - Loki の AssocVector のように実装されていますが、Boost の Bimap の機能を備えたものはありますか?

Loki の AssocVector (要素の参照の局所性、マップと比較して要素ごとのメモリ オーバーヘッドが低い) によって提供されるパフォーマンス特性を持ちながら、Boost の BiMap 機能 (からマップをクエリできる) を備えたライブラリ コードを誰かが知っているのだろうか関係の両側)?

または、並べ替えられた std::vector の std::pairs を使用し、ペアのいずれかの要素をキーとして使用してベクトルを検索する機能を追加することは、今後の方法ですか?

0 投票する
1 に答える
2348 参照

c++ - ベクトルとハッシュテーブルをBoost.Bimapに置き換えます

vector<string>前者のインデックスへのaとboost::unordered_map<string, size_t>マッピング文字列を。に置き換えたいと思っていboost::bimapます。

どのインスタンスbimapを使用する必要がありますか?これまでのところ、私は思いついた

しかし、今コレクションタイプを逆にしたかどうかはわかりません。また、リレーションタイプのコレクションを変更する必要があるのではないかと思います。vector_of_relation私の最良の選択でしょうかset_of_relation、それともデフォルトで行くのでしょうか?

0 投票する
1 に答える
1874 参照

java - 2 つまたは複数の要素間の直接または逆の関係を表すのに最適な Guava (Google) コレクション API は何ですか?

BiMap には逆メソッドがありますが、問題に使用する正しいコレクションかどうかはわかりません。誰かが別のアプローチまたはコレクション/方法を提案できますか? 例が役に立ちます。

前もって感謝します。プラカシュ

0 投票する
2 に答える
23769 参照

c++ - c++11 に Boost.Bimap の代替手段はありますか?

C++0x で Boost のバイマップに代わる使用可能な方法はありますか?

Boost は避けたいのですが、C++11 を完全に採用しています。必要に応じて、プログラム全体で Boost の bimap のスリム化されたバージョンが機能します (enum と対応する文字列を切り替えるには定数 bimap が必要です)。マップはコンパイル時に一定であるため、2 つの手動で管理されたマップでさえ最適なソリューションではない可能性があります。

ありがとう!

更新: The Code Project でこれを見つけましたが、ライセンスに問題があるようです: http://www.codeproject.com/KB/stl/bimap.aspx?fid=12042&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr =151#xx0xx

私はクリーンで簡単な解決策を探しています (私の場合、2 つの mirrorred マップは同じように問題ないため、1 つのヘッダー/ソース ファイルまたは少し追加します)。

0 投票する
2 に答える
1900 参照

c++11 - Variadic typedefs、または「C++0x の方法で行われた Bimaps」

短い質問: 可変引数パックを型定義できますか? が必要template <typename ...T> struct Forward { typedef T... args; };です。


長いバージョン:

C++0x で優れたブースト バイマップを再実装することを考えていました。2 つのタイプの bimapSTがとの間std::set関係であることを思い出してください。オブジェクト自体は 2 つの独立した内部コンテナーに格納され、リレーションは関連付けられた反復子を追跡します。どちらのタイプも、「左」および「右」ルックアップを介してキーとして機能できます。内部コンテナの選択に応じて、値が一意である場合とそうでない場合があります。たとえば、左のコンテナがセットで右のコンテナがマルチセットの場合、多くの異なる にマップでき、右のルックアップで等しい範囲が得られます。人気のある内部コンテナは、、およびであり、おそらくS xT yxysetmultisetvectorlistunordered_*バージョンも。

したがって、テンプレート パラメーターとして 2 つのコンテナーを受け入れる型が必要です。

しかし、コンテナは任意の数の引数を取ることができることを受け入れる必要があるため、それらもすべて渡す必要があります。可変引数のセットが1 つだけ必要な場合は、それらを直接渡すことができるため、問題にはなりません。しかし、ここでは2組の引数が必要なので、次のように使用するフォワーダーを書きたいと思います。

私が思いついたテンプレートは次のとおりです。

残念ながら、指定された行ではForward、パラメーター パックを typedef する方法がわかりません! (コメント行でコンパイラ エラーが発生します。)

[怠惰なバージョンを使用してandBimap<std::set<int, MyPred>, std::multiset<char, YourPred>> x;を介して型を抽出することもできると思いますが、キーの型を主要なテンプレート引数にして、コンテナーへのデフォルト設定を許可できればもっといいと思いました。]LeftCont::value_typeRightCont::value_typestd::set

0 投票する
1 に答える
542 参照

c++ - boost::bimapでカスタムアロケータを使用する

BoostGraphLibraryとの両方を使用するプログラムのパフォーマンスの向上に取り組んでいますboost::bimap。プロファイリングにより、ほとんどの時間がメモリの割り当てと割り当て解除に費やされていることが明らかになりました。adjacency_listグラフライブラリのクラスを使用するようにすると、boost::fast_pool_allocatorパフォーマンスが大幅に向上します。残りのメモリ割り当ての大部分はで発生するboost::bimapため、そこでカスタムアロケータを使用して実験したいと思いました。ドキュメントには、アロケータをバイマップの最後のテンプレートパラメータとして指定できると記載されていますが、アロケータ自体のテンプレート引数のタイプについては記載されていません。たとえば、タイプXY

何を記入する必要がありZますか?

0 投票する
1 に答える
430 参照

boost - 値でマップをトラバースする方法

マップがあるとしましょう:typedef map<int, string> MyMap;

たとえば、次のように文字列でトラバースしたいと思います。

1 つの方法は、このマップをその値でソートすることです。しかし、これは find() の効率に影響を与えるのではないかと心配しています (本当ですか?)

もう 1 つの選択肢は、 を使用することboost::bimapです。しかし、お気づきかもしれませんが、MyMap の値は一意ではないため、bimap はここでは適用できません。

それを行う良い方法はありますか?