こんにちは、キューの代わりにベクターを使用できますか? 別のスレッドを使用して、メモリとの間でプッシュおよびポップしたいだけです。また、ポップ後にデータを削除する必要があります。vector より queue を使用する利点はありますか?
前もって感謝します....
こんにちは、キューの代わりにベクターを使用できますか? 別のスレッドを使用して、メモリとの間でプッシュおよびポップしたいだけです。また、ポップ後にデータを削除する必要があります。vector より queue を使用する利点はありますか?
前もって感謝します....
キューは FIFO であるため、プッシュした反対側からポップする必要があるため、賢明ではありません。このために使用する構造はです。これは、デフォルトでボンネットの下で使用std::deque
する構造です。std::queue
キューに vector を使用すると、vector の最初の位置から要素を挿入または削除する必要があります。ベクトルはメモリの単一ブロックとして含まれており、そのような操作にはコストがかかります。キューはより効率的に実装できます。
ベクターは、キューではなくスタックに似ています。片側から押してポップすることはできますが、一方から押してもう一方からポップすることはできません。ベクトルを使用すると、一定時間内にインデックスによって任意の要素にアクセスできますが、要素を最初から効率的に削除することはできません。