問題タブ [deque]

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

java - Java で両端キューを実装する際の問題

申し訳ありませんが、ここでの質問に続いて:ここで、このメソッドを実行して、両面キュー (deque) からジェネリック値 (EltType) を削除しようとしていますが、エラーが発生し続けます。insertFirst を 2 回呼び出します。 、値「3」を配列に2回挿入すると、removeFirstを実行すると、「3」が1回出力され、その後「Null」が出力されます。誰か私を助けてくれませんか?

ありがとうございました :)

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

java - 配列ベースの両端キューの問題は見つかりませんが、outOfBounds 例外が発生します

私は何年もの間これを理解しようとしてきましたが、役に立ちませんでした。私のコードには、見えない問題がいくつかあるに違いないと思います。以前は少し複雑な方法で実装したことがあり、苦労している下の年の友人を助けるために簡単な形式で書いていましたが、混乱してしまいました!

コードは次のとおりです。

問題は、私が電話するときです

これは、エラーを返します。

同じことが insertLast メソッドにも当てはまります。私はそれを理解することができず、stackOverflow の精査的な視線が私を助けてくれることを望んでいました. どうもありがとう !

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

java - 誰かが両端キューのコードをもう一度教えてもらえますか?

しばらくこれに取り組んできましたが、ついにクラックしたと思います。すべてのテストで機能していますが、いくつかの問題があると感じています。これは、値が追加されるたびに一時配列が作成されてすべての値が格納され、次に新しい値が追加される、両面キュー (deque) の非常に単純化されたバージョンです。このように説明するのが最も簡単だと思います。誰かが私が正しく、ここに明らかな問題がないことを再確認していただければ、非常に感謝しています. どうもありがとうございました!:)

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

scala - Scalaで2つの優先キューを「同期」させることは可能ですか?

2種類の優先順位を持つオブジェクトのセットがあります。それぞれの順序で2つのPriorityQueueを作成できます。問題は、それらの1つから要素をデキューしても、明らかに他の要素から消えないことです。

「同期」して2つのキューを作成して、要素が一方から削除されると、もう一方から削除されるようにすることは可能ですか?

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

java - 循環配列を使用して両端キューを実装しますか?

循環配列を使用してこの両端キューを実装するのに多くの問題があります。特に、remove メソッドは、何を試しても間違った要素を削除しているようです。誰でも助けることができますか?

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

java - 循環配列両端キューの拡張に関する問題

ご挨拶、

配列がいっぱいになると拡張する循環配列を使用して Deque を実装しようとしています。私の問題は、配列が拡張を拒否しているようです。size() の計算が間違っているか、フロント インデックスとリア インデックスの更新方法に問題があります。私はそれを何度も見てきましたが、これを理解しているようです。誰でも助けることができますか?

テスト入力:

テスト出力: いくつかの印刷ステートメントを設定しましたが、何らかの理由でサイズが常に 7 のままです...

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

c - より良い実装であるキューパフォーマンスの観点から-配列またはリンクリスト

非常に少数の要素を挿入する必要がある場合、どちらの方法でエンキューとデキューを高速化できますか?配列はリンクリストよりも優れていますか?

いくつかの要素を挿入する必要があり、その削除された要素をキューから削除して読み取る必要があります。配列の場合、要素を削除するたびにインデックスを変更しなければならない場合があります。挿入と削除が同時に発生する場合もあります。

以下のケースからどちらが良いですか?

配列コード

リンクリスト

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

c++ - C++ での Deque の実装

プログラミングの練習として Deque の実装を書いていますが、まったくうまくいきません。与えられたテスト メイン プログラムを正しく機能させるために必要ないくつかの重要な機能がありません。

これまでの私のコードは次のとおりです。

66行目からの関数が返されていることを誰かが教えてくれるかどうか疑問に思っていました:

何が間違っているのかわからないからです。また、誰かが親切にも pop_front() 関数の例を教えてくれ、それを使用して pop_back() 関数を作成できるようになれば、それは素晴らしいことです。最後に、消去関数の 1 つを完了しましたが、基本的に 2 つの反復子の範囲内の値を消去する 2 つ目の関数を作成する方法がわかりません。これは 176 行で参照されています。

どんな助けでも大歓迎です。前もって感謝します。

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

c++ - Win32 スレッドで非同期 I/O を試みる

Windows 用のシリアル ポート ソフトウェアを作成しています。パフォーマンスを向上させるために、非同期 I/O を使用するようにルーチンを変換しようとしています。私はコードを作成し、かなりうまく機能していますが、これはまだ初心者であり、プログラムのパフォーマンスをさらに改善したいと考えています。プログラムのストレス テスト中 (つまり、高いボーレートで可能な限り高速にポートとの間でデータをバーストする)、CPU 負荷が非常に高くなります。

Windows で非同期 I/O とマルチスレッドを使用した経験のある方がいらっしゃいましたら、私のプログラムをご覧いただければ幸いです。主な懸念事項が 2 つあります。

  • 非同期 I/O は正しく実装されていますか? 最後に独自のデータを使用して独自の OVERLAPPED 構造体を実装することにより、ユーザーデータをコールバック関数に渡すことができることを示唆する、かなり信頼できるソースをネット上で見つけました。これはうまく機能しているように見えますが、私には少し「ハック」に見えます。また、同期/ポーリングから非同期/コールバックに変換したとき、プログラムのパフォーマンスはそれほど改善されず、何か間違ったことをしているのではないかと疑われました。

  • FIFO データ バッファに STL std::deque を使用するのは正気ですか? プログラムは現在作成されているため、一度に 1 バイトのデータしか受信できないため、処理する必要はありません。受信するデータの量がわからないため、無限の量になる可能性があります。この一度に 1 バイトずつでは、データを割り当てる必要があるときに deque の行の背後で動作が遅くなると思います。また、deque がスレッドセーフであるとは信じていません (そうすべきでしょうか?)。STL deque の使用が適切でない場合、より適切なデータ型を使用するための提案はありますか? 静的配列ベースの循環リング バッファ?

コードに関するその他のフィードバックも大歓迎です。


シリアル ルーチンは、シリアル I/O 関連のすべてを処理する「Comport」という親クラスを持つように実装されています。このクラスから、マルチスレッド バージョンである「ThreadedComport」という別のクラスを継承します。

ThreadedComport クラス (関連部分)

CreateThread() によって作成されたメイン スレッド ルーチン:

次に、次の 3 つの関数を呼び出します。

非同期 I/O コールバック関数: