C++ STLのqueue::push()とqueue::pop()の使い方を徹底解説
本記事では、C++ STLにおけるqueue::push()関数とqueue::pop()関数の仕組み、構文、具体的な使用例について詳しく解説します。
C++ STLにおけるキュー(queue)とは?
キューとは、C++ STLで定義されたシンプルなデータ構造の一つで、FIFO(First In First Out:先入れ先出し)方式によってデータの挿入と削除を行います。キュー内のデータは連続的に格納され、要素は末尾に挿入され、先頭から削除されます。C++ STLにはあらかじめキューテンプレートが用意されており、通常のキューと同じ要領でデータの挿入・削除を行うことができます。
queue::push()とは?
queue::push()は、<queue>ヘッダーファイルで宣言されているC++ STLの組み込み関数です。新しい要素をキューコンテナの末尾に挿入するために使用されます。push()は、挿入したい要素を1つの引数として受け取り、呼び出すたびにコンテナのサイズが1つ増加します。
内部ではこの関数がpush_back()を呼び出しており、そのおかげでキューの末尾への要素挿入が簡単に行えるようになっています。
構文
myqueue.push(type_t& value);
この関数は、type_t型(キューコンテナ内の要素の型)の値を1つの引数として受け取ります。
戻り値
この関数は何も返しません(void型です)。
使用例
入力:queue<int> myqueue = {10, 20, 30, 40};
myqueue.push(23);
出力:
キュー内の要素 = 10 20 30 40 23
この例では、元のキューの末尾に23が新しく追加されていることが確認できます。
コード例
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> Queue;
for(int i=0 ;i<=5 ;i++){
Queue.push(i);
}
cout<<"キュー内の要素 : ";
while (!Queue.empty()){
cout << ' ' << Queue.front();
Queue.pop();
}
}
実行結果
上記のコードを実行すると、以下の出力が得られます。
キュー内の要素 : 0 1 2 3 4 5
queue::pop()とは?
queue::pop()も、<queue>ヘッダーファイルで宣言されているC++ STLの組み込み関数です。キューコンテナの先頭から既存の要素を削除するために使用されます。pop()は引数を受け取らず、呼び出されるたびに関連付けられたキューの先頭要素を削除し、コンテナのサイズを1つ減らします。
構文
myqueue.pop();
この関数は引数を受け取りません。
戻り値
この関数は何も返しません(void型です)。
使用例
入力:queue myqueue = {10, 20, 30, 40};
myqueue.pop();
出力:
キュー内の要素 = 20 30 40
先頭の要素「10」が削除され、20以降の要素だけがキューに残ります。
コード例
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> Queue;
for(int i=0 ;i<=5 ;i++){
Queue.push(i);
}
for(int i=0 ;i<5 ;i++){
Queue.pop();
}
cout<<"キューに残った要素 : ";
while (!Queue.empty()){
cout << ' ' << Queue.front();
Queue.pop();
}
}
実行結果
上記のコードを実行すると、以下の出力が得られます。
キューに残った要素 : 5
まとめ
queue::push()はキューの末尾へ要素を追加し、queue::pop()はキューの先頭から要素を削除します。この2つの関数を組み合わせることで、FIFO方式のデータ処理を簡単に実装できます。なお、どちらの関数も戻り値を持たない点には注意してください。
-
C++ STLのvector::begin()とvector::end()の使い方を徹底解説
C++のSTL(標準テンプレートライブラリ)におけるvector::begin()およびvector::end()は、ベクター内の要素を走査するために欠かせないメンバ関数です。本記事では、それぞれの役割と実際のコード例を通じて、その使い方をわかりやすく解説します。 vector::begin() とは vector::begin()は、コンテナ(ベクター)の先頭要素を指すイテレータを返す双方向イテレータ用の関数です。この戻り値を使うことで、ベクターの最初の要素から順番にアクセスすることができます。 vector::end() とは vector::end()は、コンテナの末尾(最後の要素の次の
-
C++のSTLでキューを実装するプログラムの書き方と解説
キュー(Queue)とはキューは、先入れ先出し(FIFO: First In First Out)の順序で要素に対する操作が行われる線形データ構造です。最初に挿入された要素が最初に取り出されるという特性を持ち、タスク管理やバッファ処理など、さまざまな場面で活用されています。C++の標準テンプレートライブラリ(STL)には、キューを手軽に扱える std::queue コンテナアダプタが用意されています。これを利用すれば、データ構造を自前で実装することなく、効率的にキュー操作を行うことができます。使用する主な関数ここで使用する関数: q.size() = キューのサイズ(要素数)を返しま