問題タブ [multiset]

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 に答える
1692 参照

java - ネストされたマップとマルチセットを反復する方法は? - ジャワ/グァバ

そのような宣言でネストされたマップをどのように反復処理する必要がありますか?

  • Map<String, Multiset<String>>

このハッシュ生成タスクを行うためのより効果的な方法である他のハッシュマップ/リストがあるかどうかを提案してください。

これで、ハッシュマップが作成されました。その複雑なネストされたマップをどのように反復処理すればよいでしょうか? 以下のコードを試してみましたが、マルチセットから最初の getValue() しか得られませんでした:

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

java - HashMap put または putAll? - ジャワ

参照によるハッシュマップの配置とコピーによるハッシュマップの配置。後者はどうすればいいですか?もう 1 つの問題は、 の数がString[] types実際には事前にわかっていないため、 の複数のインスタンスを作成してMultiset<String> textAndCount = TreeMultiset.create();もあまり役に立ちません。次のコードがありますが、両方のタイプの出力は同じです。

私の出力は上記のコードからのものです:

正しい出力は次のようになります。

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

c++ - C++ マルチセットの最初の N 要素を取得する

最初の (.begin()) 要素を常に取得してから消去することなく、マルチセット構造から最初の N 要素を取得するにはどうすればよいですか?

マルチセットに影響を与えずに最初の N 要素を合計したいだけです。

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

c++ - マルチセット消去の最後の要素

次を使用して、マルチセットの最後の要素を消去しようとしています:

minheap.erase(minheap.rbegin());

コンパイルされず、4 ~ 5 個のエラーが発生します。

C++ マルチセットでは.end()、最後の要素ではなく、最後の要素の次を指すことに注意してください。

何か案は?

編集:

これが異なる数値を提供しているのはなぜですか?

マルチセット `m1 is 1` と `m2 is 2` にいくつかのデータが追加されています。なぜそれらは同じではないのですか?
0 投票する
8 に答える
43976 参照

c++ - std::multiset には、要素が見つかった場合に 1 つのサンプル (単一化または複製) を消去する関数またはアルゴリズムがありますか?

おそらくこれは重複していますが、何も検索していませんでした:erase(value)が呼び出されたときstd::multisetに、見つかった値を持つすべての要素が削除されます。私が考えることができる唯一の解決策は次のとおりです。

これは大丈夫ですが、もっと良いかもしれないと思いました。何か案は ?

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

c++ - Std::multiset、挿入された要素の位置を追跡する

std::multiset の演算子のいずれかを何らかの形でオーバーロードして ('()' を使用してカスタム比較関数を作成するように)、マルチセット内の 2 つの要素が交換されたときに、別のベクトルの別の 2 つの要素がそれらにリンクされるようにすることはできますか?

つまり、実際にはマルチセットに要素 {a、b、c、d、e} を挿入したいのですが、.find() を使用せずに、マルチセット内の位置を追跡したいのです。そこで、別のベクトル pos を作成することを考えました。ここで、pos[k] は、マルチセット内の要素 k の位置です。

したがって、このベクトル pos がある場合でも、要素を挿入するときに multiset を作成する必要があります。これは、要素を multiset 内の適切な場所に配置するだけでなく、スワップされたすべての要素の pos[] を変更するためでもあります。

マルチセットが要素をどのように変更/スワップしてソートするのか正確にはわかりませんが、次の代わりにそれをオーバーライドできますか:

のようなものがあります。

また、.find() (等しい要素に対して O(N) の複雑さを持つ) を使用せずに、マルチセット内の要素の位置を追跡する方法について他のアイデアがある場合は、素晴らしいでしょう!

編集

pos[n]また、新しい要素 (n) を挿入すると、「スワップ」が行われる前にの正しい初期化が行われるように、何かを変更する必要があると思います。

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

c++ - 引数を取るコンストラクタをC++のセットに渡すことは可能ですか?

比較関数に引数を取るコンストラクターをセットに渡すことができるかどうか疑問に思っていました。

たとえば、次のようなものです。

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

sql - ネストされたテーブルcolumsqloracleを使用してテーブル内の互いに素なセットを検索します

これらはサンプルデータです:

クエリは、テーブルの他のCourseListのサブセットではない正しいデータCourseListを返します。

サブクエリなしでそれを行う方法についてのいくつかのアイデア、私はそれが同じテーブルで結合を使用して行うことができると思いますが、私はそれを行う方法がわかりません。

ありがとう。

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

java - Guava で、単一の要素と n 回の出現で Multiset を作成する方法

Guava で (不変の) Multiset を作成したいと思います。これは、両方ともコンパイル時に認識されていない、単一のエントリelementを持っています。occurrences

私が思いついたのはこれです:

私はこのような方法を探していたと思います:

また:

上記のコードを短くするために見落とした方法はありますか?

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

c++ - オブジェクトのマルチセット

私は持っていmultiset < Class1 > mysetます; だから私は新しいオブジェクトを作成します.Class1* c1 = new Class1(); 私はできると思っていましmyset.insert(c1)myset.insert(new Class1());.

オブジェクトの挿入と整数の挿入の違いは何ですか? int を挿入できました。