問題タブ [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 投票する
1 に答える
154 参照

python - Pythonのベクトルクラスからのdeque作成

私は両端キューを定義し、Python でベクターを挿入します。私の目標は、ベクターから両端キューを定義することでした。しかし、このキューを反復処理すると、python はこのベクトルの最初の引数を返します。ベクトルから両端キューを定義するにはどうすればよいですか?

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

c++ - deque iterator OGRE

わかりました、私は次のコードを持っています:

しかし、ビジュアルスタジオは、ホバーホバーiterator iterすると、次のようなエラーを表示します:Error: class "Ogre::deque<Ogre::Vector3, Ogre::STLAllocator<Ogre::Vector3, Ogre::GeneralAllocPolicy>>" has no member 'iterator'

私は何を間違っていますか、

申し訳ありませんが、Ogre と C++ は初めてです。これは学校のプロジェクトなので、助けていただければ幸いです。

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

uitableview - セルがロードされるようにセクションヘッダーを動的にロードする方法

多くの行と多くのセクション (500 以上のセクション) を持つ UITableView があります。dequeueReusableCellWithIdentifier メソッドを使用して表示される行のみがロードされるため、多くの行があることはそれほど悪いことではありません。問題は、[tableView reloadData] を実行するたびにすべてのセクション ヘッダーが読み込まれることです。

行に使用するのと同じ方法で、デキューされたセクション ヘッダーを使用する方法はありますか?

そうでない場合、私が考えることができる唯一の2つのオプションは次のとおりです。

  1. セクションヘッダーキューを自分で処理します。
  2. セクション ヘッダーをカスタム セルにし、セクション セル マッピングを自分で管理します。

私はNSFetchedResultsControllerを使用しているため、両方のソリューションは非常に複雑です。

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

c++ - stl deque::insert() の複雑さ

deque::insert()次のように、C++ 標準 2003 (第 23.2.1.3 章) からの複雑さを学びました。

最悪の場合、1 つの要素を両端キューに挿入すると、挿入ポイントから両端キューの先頭までの距離と、挿入ポイントから両端キューの末尾までの距離の最小値に比例して時間がかかります。

stl deque の実装は、メモリ チャンクのコレクションとして常に理解しています。したがって、挿入は、挿入位置と同じメモリ チャンク内の要素にのみ影響します。私の質問は、「挿入ポイントから両端キューの先頭までの距離と、挿入ポイントから両端キューの末尾までの距離の最小値で線形」という標準の意味は何ですか?

私の理解は、C++ 標準が deque の特定の実装を強制していないためです。複雑さは、最悪の場合の一般的なものです。ただし、コンパイラでの実際の実装では、メモリ チャンク内の要素の数に比例し、要素のサイズによって異なる場合があります。

別の推測として、insert()はすべてのイテレータを無効にするため、 deque はすべてのイテレータを更新する必要があります。したがって、線形です。

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

c++ - C++ ベクトル フロント

getFirst() 関数に問題があります。deque/vector の最初の要素を返すはずですが、代わりに 45 や 69 などの固定値を返します!

例: Add(0xFB) ... 次に printf("%d",p_MsgQueue->getFirst()) を試みます 出力: 69 ????

MessageQueue.h

Command.h のどこかに

メイン.cpp

別のファイルに値を追加していたことがわかりました。次の点に注意してください。

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

c++ - C++ Deque / Vector push_back の代わりに項目を前面にプッシュする

私がやろうとしているのは、最初の要素を取得し、評価してから削除するリーダー クラスを作成することです。つまり、アイテムは後ろではなく前に追加する必要があります。

これが私がしなければならないことです。疑似コード。

それ以外の

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

c++ - インデックスでdeque::insert()?

線形時間insert()の真ん中にたくさんのアイテムを配置するにはどうすればよいですか?deque

(挿入しているアイテムには、STLスタイルのイテレーターからはアクセスできません。)

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

uitableview - UITableViewCellの一意の識別子?

UITableViewCells のインスタンスがDequeueReusableCell(string identifier)を介してリサイクル (デキュー) された後でも、サブクラス化やコンテナー オブジェクトの使用なしで一意に識別する方法を探しています。

基本的に、新しいセルを作成するときは、このセルの一意の ID をキーとして使用して、別の関連オブジェクトをディクショナリに格納します。後で、セルがリサイクル/デキューされたときに、関連するオブジェクトを辞書から読みたいと思います。リサイクルされたセルがテーブル内の任意のインデックス パスに配置される可能性があり、(ほとんどの場合) 以前よりも他のデータが含まれている可能性があることを完全に認識しています。他のオブジェクトは実際にはインデックス パスではなく、セル インスタンスに関連しています。

オブジェクトとの関係を失うことは避けなければなりません。取得された ID は、セルが作成されたときに使用されたものと必ず同じでなければなりません。

これは、以前は乱数を生成し、それをセルのタグとして保存することで実現されていました。ただし、これらのタグは衝突する可能性があり (同じ乱数が 2 回生成された場合)、衝突回避は最後の手段としてのみ実装したいと考えています。だから私はより良い方法を探しています。

ClassHandleHandle、およびSuperHandleプロパティを見てきました。デキュー間で一貫性を保っているのは ClassHandle だけのようです。

この目的で ClassHandle プロパティを使用しても安全ですか? そうでない場合、他にどのようなオプションがありますか?

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

c++ - デケについての追加間接

メモリ アクセスが予想よりもやや遅いのはなぜかと考えていたところ、Visual C++ の実装にはdeque実際に組み込みのインダイレクション層があり、メモリ ローカリティが破壊されていることがわかりました。

つまり、 の配列でT*はなく、 の配列を保持しているようですT

この「機能」を持たない VC++ で使用できる別の実装はありますか、またはこの実装でそれを回避できる (可能性は低いと思いますが) 方法はありますか?

私は基本的vectorに、前面に O(1) プッシュ/ポップもある を探しています。
私はそれを自分で実装できると思いますが、allocators などを扱うのは面倒で、正しくするのに時間がかかるので、可能であれば以前に作成/テストされたものを使用したいと思います。

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

c# - C# バックグラウンド ワーカー - 繰り返しのタスクでそれをトリガーする方法

シリアルポートからデータを受信し、各行をキューに入れ、行をデキューし、わずかにフォーマット (先頭の文字を削除、トリミングなど) してから、フォーマットされた行をリストボックスに表示しています。

タイマーを使用して、200 ミリ秒ごとに Dequeuing メソッドを起動しています。すべてが機能していますが、少し遅い/遅いようです。

デキューとフォーマットを処理するために BackgroundWorker を使用することを検討していますが、行き詰まっています。

FormLoad で backgroundworker を開始しようとしましたが、すぐにコードを 1 回だけ実行することに気付きました。ループを作成するためにバックグラウンド ワーカー コード内でラベルと goto を試しましたが (よくわかりません)、CPU 使用率が高くなり、機能しませんでした。

また、シリアル受信イベントで「 backgroundWorker1.RunWorkerAsync(); 」を使用して、新しいデータが入るたびに実行しようとしましたが、「バックグラウンドワーカーは現在ビジーです」という例外がスローされます

そのため、キューを継続的に処理 (デキュー) するには、バックグラウンド ワーカーが必要です。

コード: ここにデータ受信イベントがあり、その下にバックグラウンド ワーカーにあるデキュー コードがあります。どんな助けでも大歓迎です。

次のコードはデキュー コードです。