C++
 Computer >> コンピューター >  >> プログラミング >> C++

【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操作を実現できます。

  1. C++ STLにおけるdeque front()関数とback()関数の使い方

    本記事では、C++ STLにおけるdeque front()関数およびback()関数の機能について詳しく解説します。 Deque(両端キュー)とは Deque(Double Ended Queue、両端キュー)とは、コンテナの両端で要素の挿入・削除が可能なシーケンスコンテナのことです。通常のキュー(待ち行列)データ構造では、データの挿入は末尾からのみ行い、削除は先頭からのみ行います。バス停の行列を例に考えてみましょう。人は行列の末尾にしか並ぶことができず、先頭にいる人から順に乗車していきます。一方、両端キューでは、データの挿入も削除も両端のどちらからでも行うことができます。 deque fr

  2. C++ STLのdeque::push_back()関数の使い方を徹底解説

    C++ STLにおけるdequeのpush_back()関数の機能と具体的な使い方について、構文やパラメータ、サンプルコードを交えながら詳しく解説します。 deque(デック)とは dequeは「Double Ended Queue(両端キュー)」の略称で、コンテナの両端から要素の追加・削除が可能なシーケンスコンテナです。 通常のキュー(queue)データ構造では、データの挿入は末尾からのみ、削除は先頭からのみ行えます。バス停の行列をイメージすると分かりやすいでしょう。行列に人は末尾からしか加わらず、先頭にいる人から順番に乗車していきます。一方、dequeではこの挿入と削除が両端のどちらからで