【C++ STL】queue::front()とqueue::back()の使い方を徹底解説
この記事では、C++ STLにおけるqueue::front()関数とqueue::back()関数の動作、構文、具体的な使用例について詳しく解説します。
C++ STLにおけるキュー(queue)とは?
キューは、C++ STLに定義されたシンプルなシーケンスコンテナの一種で、FIFO(First In First Out:先入れ先出し)方式でデータの挿入と削除を行うデータ構造です。キュー内のデータは連続的に管理され、新しい要素は末尾に挿入され、削除は先頭から行われます。C++ STLにはキューのテンプレートがあらかじめ用意されており、通常のキューと同じ動作でデータを扱うことができます。
queue::front()とは?
queue::front()は、<queue>ヘッダーファイルで宣言されているC++ STLの組み込み関数です。この関数は、対象のキューコンテナに最初に挿入された要素への参照を返します。言い換えれば、front()はキュー内で最も古い要素を直接参照するための関数です。
例えば、キューに「1, 2, 3, -4」の順で要素を追加した場合、先頭(head)である「1」が最初に入力された要素となり、末尾(tail)である「-4」が最後に入力された最新の要素になります。
構文
myqueue.front();
この関数は引数を受け取りません。
戻り値
この関数は、キューコンテナに最初に挿入された要素への参照を返します。
使用例
Input: queue<int> myqueue = {10, 20, 30, 40};
myqueue.front();
Output:
Front element of the queue = 10サンプルコード
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> Queue;
Queue.push(10);
Queue.push(20);
Queue.push(30);
Queue.push(40);
Queue.push(40);
cout<<"Element in front of a queue is: "<<Queue.front();
return 0;
}実行結果
上記のコードを実行すると、以下の出力が得られます。
Element in front of a queue is: 10
queue::back()とは?
queue::back()は、<queue>ヘッダーファイルで宣言されているC++ STLの組み込み関数です。この関数は、対象のキューコンテナに最後に挿入された要素への参照を返します。言い換えれば、back()はキュー内で最も新しい要素を直接参照するための関数です。
構文
myqueue.back();
この関数は引数を受け取りません。
戻り値
この関数は、キューコンテナに最後に挿入された要素への参照を返します。
使用例
Input: queue<int> myqueue = {10, 20, 30, 40};
myqueue.back();
Output:
Back element of the queue = 40サンプルコード
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> Queue;
Queue.push(10);
Queue.push(20);
Queue.push(30);
Queue.push(40);
Queue.push(50);
cout<<"Elements at the back of the queue is: "<<Queue.back();
return 0;
}実行結果
上記のコードを実行すると、以下の出力が得られます。
Elements at the back of the queue is: 50
補足:front()・back()を使う際の注意点
front()およびback()はどちらも定数時間O(1)で動作し、非常に高速です。ただし、これらの関数はあくまで要素への参照を取得するだけで、キューから要素を取り除くわけではありません。実際に要素を削除したい場合は、別途pop()関数を呼び出す必要があります。また、空のキューに対してこれらの関数を呼び出すと未定義動作となるため、empty()でキューが空でないことを確認してから使用することをおすすめします。
-
C++で合計がNとなる2の累乗の数をK個見つける方法
問題の概要2つの整数 N と K が与えられたとします。求めるのは、それぞれが 2 の累乗であり、かつ合計が N となる K 個の数値です。そのような組み合わせが存在しない場合は -1 を返します。例として、N = 9、K = 4 の場合を考えてみましょう。このとき出力は「4 2 2 1」となります。合計は 9、要素数は 4 であり、各要素がすべて 2 の累乗になっていることが確認できます。解法のアプローチこの問題は、優先度付きキュー(プライオリティキュー)を活用することで効率的に解くことができます。解法の手順は以下の通りです。K が N のセットビット数(2進表現で 1 になっているビットの
-
C++とC#はどちらが速い?パフォーマンスと特徴を徹底比較
プログラミング言語を選ぶ際、「処理速度」は多くの開発者が気になるポイントです。本記事では、C++とC#という2つの代表的なオブジェクト指向言語を取り上げ、それぞれの特徴や違い、パフォーマンスの差について詳しく解説します。 C++とは C++は中級レベル(ミドルレベル)のプログラミング言語で、1979年にビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって開発されました。C言語を拡張した形であり、低レベルのハードウェア操作から高レベルの抽象化まで幅広く対応できる点が大きな魅力です。オブジェクト指向プログラミングにも完全に対応しています。 C#とは C#は、アンダース・ヘルス