問題タブ [containers]

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 投票する
2 に答える
2758 参照

design-patterns - サブジェクトが巨大なコンテナである場合、どのようにしてオブザーバーパターンを効率的に実装しますか?

オブザーバーパターンは誰もが知っています。状態の変化をオブザーバーのリストに通知して更新できるサブジェクトがあります。ここで、観察したいサブジェクトがコンテナーであり、コンテナー自体、つまり要素の追加と削除、および含まれている要素、つまりコンテナー要素の状態の更新を観察したいとします。

コンテナに大量のオブジェクトを格納するときに要素の挿入と削除が高速になるように、更新メカニズムをどのように実装しますか?特に、

  • オブザーバーのローカルコピーで同じタイプのコンテナーを使用しますか?
  • オブザーバーが使用すべきコンテナの賢い選択はありますか?(たとえば、リンクリストを監視している場合でも、常にバランスの取れたツリーを使用する方が速いでしょうか?)
  • イテレータを監視対象のコンテナに、イテレータをオブザーバのコンテナにすばやく変換するにはどうすればよいですか?(配列の場合は重要ですが、リンクリストの場合は難しいですか?)

たとえば、コンテナがリンクリストの場合、一定時間で要素を挿入できます。m人のオブザーバーがn個の要素を含むリストを反復処理する必要がある場合、更新にはO(n * m)の予想時間がかかります。

コンテナが配列の場合、要素の変更には一定の時間がかかり、要素のインデックスを渡す場合はm個のオブザーバーの更新にO(m)がかかり、オブザーバーが配列を反復処理する必要がある場合はO(n * m)がかかります。

それが役立つ場合は、次の例を検討してください。

例1.オペレーティングシステムを作成しています。観察したい主題は、ファイルシステムとそのファイルです。ビューは、ファイルエクスプローラー、インデクサー、およびその他のアプリケーションです。ファイルが追加、削除、または変更されたときにオブザーバーを更新したいとします。

例2.ニューヨークのサイズの都市を処理できるはずの名簿アプリケーションを作成しています。あなたが観察したい主題はあなたの記録の入れ物です(その住所、電話番号、電子メールを持っている人...)。オブザーバーはいくつかのビューであり、レコードを追加、削除、または変更すると自動的に更新されます。(53日に住んでいる人のリストを含む1つのビューと、姓がDoeである各人の地図上の別の描画ドットをイメージできます)。

ディレクトリサブツリー全体が削除された場合、または「53rdSt」が「DijkstraSt」に名前が変更された場合をどのように処理しますか?

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

c++ - A* プライオリティ キューの c++ セットとベクトル + ヒープ操作

make_heap/push_/pop_A* 操作の優先度キューにstd::vector を使用するよりも、std::set を使用する方が効率的 (wrt 時間) になるのはいつですか? 私の推測では、開いているリストの頂点が小さい場合は、ベクトルを使用する方が良いオプションです。しかし、これを経験した人はいますか?

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

c++ - ポインタのコンテナ

クラス インスタンスへのポインターの STL セットを宣言する際に問題が発生しています。より具体的には、次のシナリオがあります。

上記のコードは機能しません。Compiler は、SimulatedDiskFile::comparator() 関数のメンバーが見つからなかったと言います。この宣言を (構造体の外側に) 使用して関数を配置すると、コンパイラは、型が必要であると言います。

ここに私の疑問があります(1つだけではなく、関連していると思います):

  • 一連のポインターの正しい宣言は何ですか?
  • ポインターを比較する比較関数の正しい宣言はどれですか?

投稿する前に多くの場所を調べましたが、参考文献が紛らわしく、私の特別なケースとはあまり関係がありませんでした (私が思うに、ばかばかしいほど些細なことです - 実際、これが原因かもしれません)。したがって、適切なリンクも非常に役立ちます。

前もって感謝します!

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

c++ - C++ コンテナ / イテレータの依存関係の問題

私は次のようなコンテナクラスに取り組んでいます:

一致する反復子クラスは次のようになります。

私の問題は...両方のクラスを他の観点から実装する必要があることです。たとえば、イテレーターが定義されているとき、コンテナーはまだ定義されていないため、イテレーター内でコンテナーを参照する方法がわかりません。

どうすればこれを達成できますか?

ビリー3

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

python - Pythonでメンバーシップテストをエミュレートする: __contains__をcontained-objectに正しく委譲する

私は、Python が機能を他のオブジェクトに委任するためのいくつかの巧妙なトリックを許可していることに慣れています。1 つの例は、含まれているオブジェクトへの委任です。

しかし、__contains __ をデリゲートしたい場合、運が悪いと思われます:

私は得る:

私が間違っていることは何ですか?a.__contains __(1) を呼び出すと、すべてがスムーズに進みます。A に __iter __ メソッドを定義して、A をイテラブルに見えるようにしようとさえしましたが、役に立ちませんでした。ここで何が欠けていますか?

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

containers - DNN コンテナ

これは一般的な質問かもしれませんが、理解できないようです。DNN のコンテナとは? スキンは基本的に、ポータル全体のレイアウトとカラー スキームです。では、コンテナはデスクトップモジュールのスキンですか?

この質問が初心者の場合は申し訳ありません。まだDNNに自信がなく、ドコを読んでいます。ただし、この回答はすぐに必要です。

乾杯。

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

wpf - Caliburnは、どこからでもコンテナへの参照を取得する方法を提供しますか?

私は現在、RobEisenbergのCaliburnフレームワークをいじっています。http://caliburn.codeplex.comで提供されているドキュメントを見ると、コンテナーからCaliburnサービスを解決する方法の例があります。

これに沿ったものです:

ただし、私が見逃しているのは、アプリ内の任意の場所でコンテナーへの参照を取得する方法です。このような:

コンテナへの参照を保持するカスタム静的クラスを構築する必要がありますか、それともCaliburnにすでに組み込まれているものがありますか?

よろしくお願いします!

0 投票する
4 に答える
82 参照

containers - コンテンツの一意性をチェックするコンテナ

アイテムを挿入する前に、値やインデックスではなく、コンテンツの一意性をチェックする言語のデータ型/コンテナはありますか?

0 投票する
4 に答える
6325 参照

c++ - C ++のコレクション/コンテナのインターフェース/スーパークラス

私は Java の世界から来て、現在小さな C++ プログラムを作成しています。いくつかの作業を行い、作業の結果をリストとして返すオブジェクトがあります。

1日後、コンテナ内での重複を避けるために、結果をセットに保存するようにオブジェクトの動作を変更しました。しかし、初めてインターフェイスにリストを使用したため、単純にセットを返すことはできません。オブジェクトのインターフェイスを指定し、内部で使用するコンテナーの種類を忘れるために使用できる共通のコンテナー インターフェイスはありますか?

現時点では、すべての値を追加するセットを作成し、セットからリストを作成しています:

少し奇妙に思えます。

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

.net - .NET の双方向マップ

双方向ルックアップに使用できる .NET データ構造はありますか?

問題は次のとおりです。シリアライゼーション。オブジェクトには、定義済みの 10 個の静的オブジェクトの 1 つを指すフィールドが含まれています。ファイルに書き込むときは、10 個のオブジェクトのどれが参照されているかを表す 1 文字を書き込みます。この時点で、参照されているオブジェクトに基づいて文字コードを取得できるルックアップ データ構造が必要です。逆シリアル化するときは、逆にする必要があります。このようなデータ構造を使用できる場所は他にもたくさん考えられます。