問題タブ [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.
c++ - `std::multiset` の一意の要素を繰り返す
必要なのは、何かが存在するかどうかと、それが何回存在するかを知ることだけです。既存のものを繰り返し処理し、どれだけ存在するかを照会します。
これまでの実装では を使用しておりmultiset
、次のようにします。
明確化
s のベクトルがありthing
ます。しかし、彼らは時々値を繰り返します。私は unique を反復処理し thing
、それぞれの unique に対して何かをしたいと考えています。thing
この「何か」は、これがベクトルに表示される時間を知る必要があります。
上記のコードは、私が現在問題を解決している方法です。これは、私が望むことを行うための最もエレガントな方法ではないようです。
私は Stackoverflow のガイドラインに従っているだけです。私の問題は何かを伝え、(試した) 解決策を伝えます。
疑問符の付いた文が本当に必要な場合は、そこに行きます: a で一意の要素を反復処理する方法はありますmultiset
か?
c++ - イテレータを使用してSTLマルチセットから要素を消去します
マルチセットコンテナのイテレータのセットを別のデータ構造で維持しています。しばらくして、このデータ構造から1つのイテレーターを選択し、マルチセットからそのイテレーターに関連付けられた要素を消去します。私はこれを最初にこのようなものを使用します:
ただし、2番目のmyints.erase (it);
原因はセグメンテーション違反です。したがって、次のコードに変更して動作します。これが良い方法なのか、それとも実行可能なundefined
状況なのか疑問に思いました。
scala - マルチセット/バッグをScalaコレクションとして実装する
この質問に触発されて、Scalaにマルチセットを実装したいと思います。私はしたいMultiSet[A]
:
- 追加、削除、和集合、共通部分、および差異のサポート
- であり
A => Int
、各要素の数を提供します
これが1つのアプローチであり、拡張しSet
ます。
拡張は、結合、差異などの定義を自動的に取得Set
することを意味するため、便利です。次のすべてが当てはまります。MultiSet
ただし、のようないくつかの継承されたメソッドをオーバーライドする必要があります。これは、マルチセットに対して間違った処理を行うためです。たとえば、次のようにはなりませんunion
。intersect
拡張に関する別の問題は、エラーが発生するため、私はそうするSet
ことができないということです。たとえば、別のメソッドを宣言することでこれを回避できますが、クラスを単ににすることを強くお勧めします。MultiSet
A => Int
illegal inheritance; class MultiSet inherits different type instances of trait Function1: A => Int and A => Boolean
count
A => Int
別のアプローチは、から継承するMap[A, Int]
ことです。これにより、必要なものが得られますが、これらはペアで定義されるためA => Int
、自分の、などをすべて定義する++
必要--
がありますが、マルチセットの場合は定義する必要があります。 s以上 。Map
(A, Int)
A
Set
3番目のアプローチは、との両方をあきらめてMap
、の新しいサブクラスなどを実装することだと思いIterable
ます。
あなたは何をお勧めします?MulitSet
Scalaコレクションフレームワーク内に収まるための最良の方法は何ですか?
python - セット内の各要素の数 (多重度) を考慮して、セットがサブセットかどうかをテストします
set1 が set2 のサブセットであるかどうかをテストできることはわかっています。
しかし、次のことも真です。
セット内の要素が発生する回数を考慮して、次のようにするにはどうすればよいですか。
私は次のようなことができることを知っています:
set(A).issubset(B,count=True)
しかし、もっと簡潔なようなものや、リスト内包表記から離れる方法があるのではないかと思っていました。ありがとう!
scala - TraversableOnce[T] を Multiset のようなまたはヒストグラムのような Map[T, Int] に変換する最もクリーンな方法は何ですか?
Traversable[T] をカウント付きの Map[T, Int] ヒストグラムに変換したいと考えています。結果を、私がやることで得られるものと一致する不変の Map にしたいと思います:
しかし、これは空間的にも時間的にも効率的ではないように見えます...トラバーサブルgroupBy
内のすべての要素への参照を維持するため、これは、一意のキーの小さなセットを持つ大きなトラバーサブルではパフォーマンスが低下します。私は本当にこのようなものがもっと欲しいです:
この結果が得られるライブラリ メソッドはありますか (理想的には、並列コレクションでうまく機能します)。
c++ - C++: std::function を使用して multiset にタプルを挿入し、順序を維持する
簡単に言うと、このコードの何が問題なのですか?
を使用してコンパイルg++ 4.7.2
- コマンドを使用して単純にg++ -std=c++11 main.cpp
なぜ私はこれをしたいのですか?
プログラムはリアルタイムで実行され、関数には呼び出されadd_even_handler
た型の値が含まれます(ここでの変数は、時計や実際の時間とは関係がないことに注意してください。これは double 型の増加するオブジェクトにすぎません)。したがって、ユーザーがイベントを追加すると、特定の時間に呼び出されます。double
time
time
標準の下の multiset コンテナーは、オブジェクトをある順序で照合します (通常、常にではありませんがstd::less<T>
)。次に、コンテナをループして、Event
variable の変更が増加したときに を呼び出すことができましたdouble time
。
何が問題ですか?
KyleC が指摘したように (彼の回答を参照)、std::function<>
コンパイラはどのプロセスを注文するかを理解していません。
私がどのように問題を克服したか
あなたは毎日何か新しいことを学びます。上記のコードは、最初に と を混ぜて問題を考えすぎた結果std::multiset
ですstd::tuple
。std::map<T,S>
orは、この場合は typeでstd::multimap<T,S>
ある関連によってソートされます。これは、標準ではデフォルトで再びです。上記の代わりに、次のようなことをしましたkey
double
std::less<T>
これは、明らかではありますが、人々を助ける可能性がある場合に備えて、ここに書かれています.
python - カウンターの 2 番目の最大値を見つける方法 - Python
カウンターの最大値には、次のようにアクセスできます。
カウントの降順で並べ替えられたカウンターが必要な場合はどうすればよいですか?
2 番目の最大キー、または 3 番目または N 番目の最大キーにアクセスするにはどうすればよいですか?
c++ - マルチセット反復子間の距離
O(n) 未満の複雑さで multiset 内の 2 つのイテレータ間の距離を見つけることができますか?
イテレータヘッダーで提供される std::distance() 関数を使用しようとしました。ただし、その内部実装はマルチセット イテレータの O(n) です。
c++ - 誕生日オブジェクトのマルチセットで誕生日カレンダーを作成したが、並べ替えが機能しない
誕生日オブジェクトのマルチセットで誕生日カレンダーを書いています。比較機能が正しくソートされず、誕生日を名前で検索できません。
これが私の比較関数です。誕生日または誕生日の一部と名前全体でデータベースを検索できるようにしたいと考えています。名前による検索が機能しません。
マルチセットの型定義を既に使用しており、オブジェクト ファンクターを含めるために定義に使用していますが、簡潔にするために、このコードの抜粋からは省略しています。