問題タブ [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.
c++ - タイムスタンプ付きデータのシーケンスを保存する方法は?
一連の電圧データを保存する必要のあるアプリケーションがあります。各エントリは、ペア{時間、電圧}のようなものです。
時間は必ずしも連続的ではありません。電圧が動かなければ、私は何も読みません。
問題は、getVoltageOfTimestamp(float2second(922.325))のようにタイムスタンプを検索する関数も必要なことです。
私の解決策は、ペアを格納する両端キューを用意し、30秒ごとにサンプリングを実行して、インデックスをマップstd::mapに格納することです。
したがって、getVoltageOfTimestamp(float2second(922.325))内で、目的の時間に最も近いinterval_of_30_secondsを見つけてから、dequeのポインターを対応する_index_of_dequeに移動し、そこから繰り返して正しい電圧を見つけます。
ここにもっと「コンピューター科学者」の解決策があるかどうかはわかりませんが、誰かが私に手がかりを与えることができますか?
c++ - インデックスによる STL deque アクセスは O(1) ですか?
位置インデックスによる要素へのアクセスは、STL両端キューで一定時間で実行できることを読みました。私の知る限り、deque 内の要素はいくつかの連続しない場所に格納される可能性があり、ポインター演算による安全なアクセスが排除されます。例えば:
abc->defghi->jkl->mnop
上記の両端キューの要素は、単一の文字で構成されています。1 つのグループの文字セットは、連続したメモリに割り当てられていることを示します (たとえば、abc はメモリの単一ブロックにあり、defhi は別のメモリ ブロックにあるなど)。特にアクセスする要素が2番目のブロックにある場合、位置インデックスによるアクセスを一定時間で行う方法を誰かが説明できますか? または、両端キューにブロックのグループへのポインタがありますか?
更新:または、両端キューの他の一般的な実装はありますか?
c++ - ユーザー定義構造の両端キュー
ユーザー定義の構造体struct theName
があり、これらの構造体の両端キューを作成したい ( deque<theName> theVar
)。ただし、コンパイルしようとすると、次のエラーが発生します。
なぜ私はこのようにすることができないのですか?
ファイル: Logger.h
c++ - C++ ユニオン代入、これを行う良い方法はありますか?
私は図書館のプロジェクトに取り組んでおり、労働組合と協力しなければなりません。具体的には、SDL とSDL_Event ユニオンを使用しています。SDL_Events のコピーを作成する必要がありますが、共用体を使用した代入演算子のオーバーロードに関する適切な情報が見つかりませんでした。
代入演算子をオーバーロードできる場合、手動でユニオン メンバーをふるいにかけ、適切なメンバーをコピーするか、単純にいくつかのメンバーを取得するか (これは危険に思えます)、単に memcpy() を使用するか (これは単純で高速に思えます) 、しかし少し危険です)?
演算子をオーバーロードできない場合、そこからの最良のオプションは何ですか? 新しいコピーを作成して一連のポインターを渡すこともできると思いますが、この状況ではそれを行いたくないでしょう。
どんなアイデアでも大歓迎です!
編集:要求されたエラーメッセージとして、そしてついでに私は何かを学んだと思います...
physworld.cpp:325: error: no match for ‘operator=’ in ‘CurrentEvent = ((physworld*)this)->physworld::SDL_UserInputEvents.std::queue<_Tp, _Sequence>::pop [with _Tp = SDL_Event, _Sequence = std::deque<SDL_Event, std::allocator<SDL_Event> >]()’ /usr/include/SDL/SDL_events.h:220: note: candidates are: SDL_Event& SDL_Event::operator=(const SDL_Event&)
EDIT2:これはとてもばかげていました... Dequeues pop() メンバーが削除されたアイテムを返したと思いました。コードが単純すぎて直接自分のコードにできないと思っていたのですが、それは間違っていることがわかりました。
私のコードは次のようになりました:
したがって、最近使用していないコンテナーのメンバー関数を詳しく調べることを学べます。割り当てがデフォルトで機能することを説明してくれてありがとう。そうでなければ、これを見つけるのに時間がかかったでしょう。
c++ - std::deque:指定されたインデックスの要素を指すイテレータを取得するにはどうすればよいですか?
std::deque があり、指定されたインデックスに要素を挿入したい (std::list の方が優れていることは承知しています)。deque::insert() 関数は、反復子を使用して挿入する場所を指定します。インデックスが与えられた場合、その場所を指すイテレータを取得して、そのイテレータを insert() に渡すにはどうすればよいですか?
例えば:
これは非常に基本的な質問であると確信しており、申し訳ありません。STL を使用してから長い時間が経ちましたが、std::deque のメンバー リストには、明らかに私が望んでいることを実行するものは何もありません。ありがとう。
c - センチネルなしで循環両端キューを反転する
Hey Stackoverflow 私は宿題に取り組んでおり、センチネルなしで循環リンクされた deque を元に戻そうとしています。ここに私のデータ構造があります:
両端キューを元に戻すための私のアプローチは次のとおりです。
ただし、それを実行して値1、2、および3を配置すると(この場合、TYPEはintの単なるエイリアスです)、逆にすると、2、1、3になります。違う?
前もって感謝します。
java - 表示方法と挿入方法の誤り (両端キュー)
1) 私の問題
右または左のプログラムから削除すると、削除はtrueになりますが、表示メソッドを呼び出すと、コンテンツが間違っています
このように12 43 65 23を挿入し、左のプログラムから削除すると12が削除されますが、表示メソッドを呼び出すと、この12 43 65のように表示されます
そして、正しいプログラムから削除すると23が削除されますが、表示メソッドを呼び出すと、この12 43のように表示されます
どうして ??????);
そして、削除後に挿入しようとすると、これを書きます
キューがいっぱいのため、正しく挿入できません。最初に右を削除してから、右を挿入できます
問題はどこだ ??
私を助けてください
お願いします
2) 私のコード
ファーストクラス
セカンドクラス
stl - C++ テンプレート関数のインスタンス化
「未定義参照」エラーに関するいくつかの問題に直面しています。コードを投稿できない場合がありますが、宣言と関数の呼び出し方法は次のとおりです。
宣言:
上記の関数を次のように呼び出しています。
上記のステートメント (関数を呼び出している場所) は、エラーとしてフラグが立てられます。これらはメッセージです:
`int is_voiced(std::deque >&, int, int, double, int, short&, long) への未定義参照
`int pitch_detect(std::deque >&, int, int)' への未定義の参照
上記のエラーを解読するための助けは大歓迎です。ありがとう、スリラム
編集: 上記の関数は、別のヘッダーと対応する C++ ファイルで定義されています。それらをコンパイルしてオブジェクトファイルを作成しようとしても問題はありません。これらのエラーは、リンカー ステージで見られます。
c++ - deque の内部ストレージ サイズを vector::capacity として取得する方法はありますか?
deque と vector の両方が、成長のためにいくらかのスペースを確保していることを理解しています。vector::capacity() は、ベクターの内部予約スペースを取得できます。Deque には、標準にそのようなメンバーはありません。この情報を取得する方法はありますか?
python - 関数の引数としてDeque.popleftを使用する
Pythonでdequeを使用してシリアルケーブルを送信するコマンドのリストを保存しようとしています。
私の関数「send_command」は3つの値を受け入れます。コマンド、int。一時停止してブール値を待ちます。その定義は次のとおりです。
私がやりたいのは、この関数を次のように呼び出すのではなく、です。
... また...
コマンドをdequeリスト内に格納し、popleft関数を使用して関数を呼び出せるようにしたいと思います。これにより、次のようなことができるようになります。
...そして、リストに物を追加し続ける方法としてdeque.append()を使用します。これは、次に、send_command関数に送信されます。次に、必要に応じて(または、コードのシリアル部分で実行できるのと同じ速さで)、リストの新しいコマンドをドロップインおよびリストから削除できます。
私が苦労している部分は、実際にはCommandList.popleft、またはdequeリストの任意の部分をsend_command関数の引数として使用しています。次のように簡単ではないようです。
簡単なことだと思いますが、わかりません。
誰か助けてもらえますか?
よろしくお願いします。
アンディ