【C++ STL】deque::empty()とdeque::size()の使い方を実例付きで解説
本記事では、C++ STLにおける deque::empty() と deque::size() の動作、構文、および具体的な使用例について詳しく解説します。
Deque(両端キュー)とは?
Deque(デック)は「Double Ended Queue(両端キュー)」の略称で、コンテナの両端で要素の追加(拡張)と削除(縮小)が可能なシーケンスコンテナです。通常のキュー(待ち行列)データ構造では、データの挿入は末尾からのみ、削除は先頭からのみしか行えません。バス停の行列をイメージすると分かりやすいでしょう。行列には後ろから人が並び、一番前にいる人から順に乗車していきます。一方、両端キューでは、データの挿入も削除も先頭・末尾のどちら側からでも自由に行えるのが大きな特徴です。
deque::empty()とは?
deque::empty() はC++ STLに組み込まれている関数で、<deque> ヘッダーファイルで宣言されています。この関数は、対象のdequeコンテナが空(サイズが0)かどうかを判定し、コンテナが空であれば true を、要素が存在すれば false を返します。
構文
mydeque.empty();
パラメータ
この関数はパラメータを受け取りません。
戻り値
指定されたdequeコンテナが空の場合(サイズが0の場合)は true を返します。逆に、コンテナ内に何らかの要素が存在する場合(サイズが0以外の場合)は false を返します。
使用例
Input: deque<int> mydeque = {10, 20, 30, 40};
mydeque.empty();
Output:
False
Input: deque<int> mydeque;
mydeque.empty();
Output:
Trueサンプルプログラム
#include <deque>
#include <iostream>
using namespace std;
int main(){
int product = 1;
deque<int> Deque;
// push_back()関数を使ってdequeに要素を追加
Deque.push_back(10);
Deque.push_back(20);
Deque.push_back(30);
Deque.push_back(40);
Deque.push_back(50);
// empty()関数を使い、dequeが空になるまで先頭要素を掛け合わせていく
while(!Deque.empty()){
product = product * Deque.front();
Deque.pop_front();
}
// dequeが空かどうかを確認
if(Deque.empty()){
cout<<"dequeは空です。すべての要素の積は : "<<product;
} else {
cout<<"dequeは空ではありません";
}
return 0;
}出力結果
上記のコードを実行すると、次のような出力が得られます。
dequeは空です。すべての要素の積は : 12000000
この例では、5つの要素(10, 20, 30, 40, 50)を順に取り出しながら掛け合わせ、最後にコンテナが空になったことを empty() で確認しています。
deque::size()とは?
deque::size() もまたC++ STLに組み込まれた関数で、<deque> ヘッダーファイルで宣言されています。この関数は、呼び出し元のdequeコンテナに現在格納されている要素の数(サイズ)を返します。コンテナに要素が1つもない場合は 0 を返します。
構文
mydeque.size();
パラメータ
この関数はパラメータを受け取りません。
戻り値
この関数は符号なし整数型(unsigned integer)の値、すなわちコンテナ内に存在する要素の総数を返します。
使用例
Input: deque<int> mydeque = {10, 20, 30, 40};
mydeque.size();
Output:
4
Input: deque<int> mydeque;
mydeque.size();
Output:
0サンプルプログラム
#include <deque>
#include <iostream>
using namespace std;
int main(){
deque<int> Deque;
// dequeに要素を追加
Deque.push_back(10);
Deque.push_back(20);
Deque.push_back(30);
Deque.push_back(40);
Deque.push_back(50);
// dequeのサイズを確認
cout<<"dequeのサイズは : "<<Deque.size();
return 0;
}出力結果
上記のコードを実行すると、次のような出力が得られます。
dequeのサイズは : 5
まとめ
deque::empty() と deque::size() は、どちらも引数なしで呼び出せる手軽な関数であり、dequeの状態を確認する際に頻繁に使われます。empty() はコンテナが空かどうかを真偽値で判定するため、ループ処理の終了条件などに最適です。一方 size() は現在の要素数を取得できるため、状態の把握や条件分岐に役立ちます。両者を適切に使い分けることで、安全かつ効率的なdeque操作を実現できます。
-
C++ STLにおけるdeque front()関数とback()関数の使い方
本記事では、C++ STLにおけるdeque front()関数およびback()関数の機能について詳しく解説します。 Deque(両端キュー)とは Deque(Double Ended Queue、両端キュー)とは、コンテナの両端で要素の挿入・削除が可能なシーケンスコンテナのことです。通常のキュー(待ち行列)データ構造では、データの挿入は末尾からのみ行い、削除は先頭からのみ行います。バス停の行列を例に考えてみましょう。人は行列の末尾にしか並ぶことができず、先頭にいる人から順に乗車していきます。一方、両端キューでは、データの挿入も削除も両端のどちらからでも行うことができます。 deque fr
-
C++ STLのdeque::push_back()関数の使い方を徹底解説
C++ STLにおけるdequeのpush_back()関数の機能と具体的な使い方について、構文やパラメータ、サンプルコードを交えながら詳しく解説します。 deque(デック)とは dequeは「Double Ended Queue(両端キュー)」の略称で、コンテナの両端から要素の追加・削除が可能なシーケンスコンテナです。 通常のキュー(queue)データ構造では、データの挿入は末尾からのみ、削除は先頭からのみ行えます。バス停の行列をイメージすると分かりやすいでしょう。行列に人は末尾からしか加わらず、先頭にいる人から順番に乗車していきます。一方、dequeではこの挿入と削除が両端のどちらからで