問題タブ [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 に答える
5390 参照

c++ - `std::multiset` の一意の要素を繰り返す

必要なのは、何かが存在するかどうかと、それが何回存在するかを知ることだけです。既存のものを繰り返し処理し、どれだけ存在するかを照会します。

これまでの実装では を使用しておりmultiset、次のようにします。

明確化

s のベクトルがありthingます。しかし、彼らは時々値を繰り返します。私は unique を反復処理し thing、それぞれの unique に対して何かをしたいと考えています。thingこの「何か」は、これがベクトルに表示される時間を知る必要があります。

上記のコードは、私が現在問題を解決している方法です。これは、私が望むことを行うための最もエレガントな方法ではないようです。

私は Stackoverflow のガイドラインに従っているだけです。私の問題は何かを伝え、(試した) 解決策を伝えます。

疑問符の付いた文が本当に必要な場合は、そこに行きます: a で一意の要素を反復処理する方法はありますmultisetか?

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

c++ - イテレータを使用してSTLマルチセットから要素を消去します

マルチセットコンテナのイテレータのセットを別のデータ構造で維持しています。しばらくして、このデータ構造から1つのイテレーターを選択し、マルチセットからそのイテレーターに関連付けられた要素を消去します。私はこれを最初にこのようなものを使用します:

ただし、2番目のmyints.erase (it);原因はセグメンテーション違反です。したがって、次のコードに変更して動作します。これが良い方法なのか、それとも実行可能なundefined状況なのか疑問に思いました。

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

scala - マルチセット/バッグをScalaコレクションとして実装する

この質問に触発されて、Scalaにマルチセットを実装したいと思います。私はしたいMultiSet[A]

  • 追加、削除、和集合、共通部分、および差異のサポート
  • でありA => Int、各要素の数を提供します

これが1つのアプローチであり、拡張しSetます。

拡張は、結合、差異などの定義を自動的に取得Setすることを意味するため、便利です。次のすべてが当てはまります。MultiSet

ただし、のようないくつかの継承されたメソッドをオーバーライドする必要があります。これは、マルチセットに対して間違った処理を行うためです。たとえば、次のようにはなりませんunionintersect

拡張に関する別の問題は、エラーが発生するため、私はそうするSetことができないということです。たとえば、別のメソッドを宣言することでこれを回避できますが、クラスを単ににすることを強くお勧めします。MultiSetA => Intillegal inheritance; class MultiSet inherits different type instances of trait Function1: A => Int and A => BooleancountA => Int

別のアプローチは、から継承するMap[A, Int]ことです。これにより、必要なものが得られますが、これらはペアで定義されるためA => Int、自分の、などをすべて定義する++必要--がありますが、マルチセットの場合は定義する必要があります。 s以上 。Map(A, Int)A

Set3番目のアプローチは、との両方をあきらめてMap、の新しいサブクラスなどを実装することだと思いIterableます。

あなたは何をお勧めします?MulitSetScalaコレクションフレームワーク内に収まるための最良の方法は何ですか?

0 投票する
5 に答える
5380 参照

python - セット内の各要素の数 (多重度) を考慮して、セットがサブセットかどうかをテストします

set1 が set2 のサブセットであるかどうかをテストできることはわかっています。

しかし、次のことも真です。

セット内の要素が発生する回数を考慮して、次のようにするにはどうすればよいですか。

私は次のようなことができることを知っています:

set(A).issubset(B,count=True)しかし、もっと簡潔なようなものや、リスト内包表記から離れる方法があるのではないかと思っていました。ありがとう!

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

scala - TraversableOnce[T] を Multiset のようなまたはヒストグラムのような Map[T, Int] に変換する最もクリーンな方法は何ですか?

Traversable[T] をカウント付きの Map[T, Int] ヒストグラムに変換したいと考えています。結果を、私がやることで得られるものと一致する不変の Map にしたいと思います:

しかし、これは空間的にも時間的にも効率的ではないように見えます...トラバーサブルgroupBy内のすべての要素への参照を維持するため、これは、一意のキーの小さなセットを持つ大きなトラバーサブルではパフォーマンスが低下します。私は本当にこのようなものがもっと欲しいです:

この結果が得られるライブラリ メソッドはありますか (理想的には、並列コレクションでうまく機能します)。

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

c++ - C++: std::function を使用して multiset にタプルを挿入し、順序を維持する

簡単に言うと、このコードの何が問題なのですか?

を使用してコンパイルg++ 4.7.2- コマンドを使用して単純にg++ -std=c++11 main.cpp

なぜ私はこれをしたいのですか?

プログラムはリアルタイムで実行され、関数には呼び出されadd_even_handlerた型の値が含まれます(ここでの変数は、時計や実際の時間とは関係がないことに注意してください。これは double 型の増加するオブジェクトにすぎません)。したがって、ユーザーがイベントを追加すると、特定の時間に呼び出されます。doubletimetime

標準の下の multiset コンテナーは、オブジェクトをある順序で照合します (通常、常にではありませんがstd::less<T>)。次に、コンテナをループして、Eventvariable の変更が増加したときに を呼び出すことができましたdouble time

何が問題ですか?

KyleC が指摘したように (彼の回答を参照)、std::function<>コンパイラはどのプロセスを注文するかを理解していません。

私がどのように問題を克服したか

あなたは毎日何か新しいことを学びます。上記のコードは、最初に と を混ぜて問題を考えすぎた結果std::multisetですstd::tuplestd::map<T,S>orは、この場合は typeでstd::multimap<T,S>ある関連によってソートされます。これは、標準ではデフォルトで再びです。上記の代わりに、次のようなことをしましたkeydoublestd::less<T>

これは、明らかではありますが、人々を助ける可能性がある場合に備えて、ここに書かれています.

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

python - カウンターの 2 番目の最大値を見つける方法 - Python

カウンターの最大値には、次のようにアクセスできます。

カウントの降順で並べ替えられたカウンターが必要な場合はどうすればよいですか?

2 番目の最大キー、または 3 番目または N 番目の最大キーにアクセスするにはどうすればよいですか?

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

c++ - マルチセット反復子間の距離

O(n) 未満の複雑さで multiset 内の 2 つのイテレータ間の距離を見つけることができますか?
イテレータヘッダーで提供される std::distance() 関数を使用しようとしました。ただし、その内部実装はマルチセット イテレータの O(n) です。

0 投票する
0 に答える
184 参照

c++ - 誕生日オブジェクトのマルチセットで誕生日カレンダーを作成したが、並べ替えが機能しない

誕生日オブジェクトのマルチセットで誕生日カレンダーを書いています。比較機能が正しくソートされず、誕生日を名前で検索できません。

これが私の比較関数です。誕生日または誕生日の一部と名前全体でデータベースを検索できるようにしたいと考えています。名前による検索が機能しません。

マルチセットの型定義を既に使用しており、オブジェクト ファンクターを含めるために定義に使用していますが、簡潔にするために、このコードの抜粋からは省略しています。