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

【C++ STL】queue::empty()とqueue::size()の使い方を徹底解説

本記事では、C++ STLにおけるqueue::empty()およびqueue::size()関数の動作、構文、具体的な使用例について詳しく解説します。

C++ STLにおけるキュー(queue)とは?

キューは、C++ STLで定義されているシンプルなシーケンスコンテナ(データ構造)で、FIFO(First In First Out:先入れ先出し)方式でデータの挿入と削除を行います。キュー内のデータは連続的に格納され、要素はキューの末尾に挿入され、先頭から順に取り除かれます。C++ STLにはあらかじめキュー用のテンプレートが用意されており、通常のキューと同じ要領でデータを挿入・削除することが可能です。

queue::empty()とは?

queue::empty()は、C++ STLに組み込まれた関数で、<queue>ヘッダーファイル内で宣言されています。この関数は、関連付けられたキューコンテナが空かどうかを確認するために使用されます。戻り値はtrueまたはfalseのいずれかで、キューが空(サイズが0)の場合はtrueを返し、何らかの要素が含まれている場合はfalseを返します。

構文

myqueue.empty();

この関数は引数を受け取りません。

戻り値

関連付けられたキューコンテナのサイズが0の場合はtrueを返し、それ以外の場合はfalseを返します。

使用例

入力: queue<int> myqueue = {10, 20, 30, 40};
      myqueue.empty();
出力:
      False

入力: queue<int> myqueue;
      myqueue.empty();
出力:
      True

サンプルコード

#include <iostream>
#include <queue>
using namespace std;
int main(){
    queue<int> Queue;
    Queue.push(10);
    Queue.push(20);
    Queue.push(30);
    Queue.push(40);
    // キューが空かどうかを確認
    if (Queue.empty()){
        cout<<"Queue is empty";
    }
    else{
        cout <<"Queue is not empty";
    }
    return 0;
}

出力結果

上記のコードを実行すると、以下の出力が得られます −

Queue is not empty

queue::size()とは?

queue::size()も、C++ STLに組み込まれた関数で、<queue>ヘッダーファイル内で宣言されています。この関数は、関連付けられたキューコンテナのサイズ(要素数)を確認するために使用されます。戻り値はunsigned int型で、キューコンテナのサイズ、つまりコンテナ内に存在する要素の数を表します。キューが空の場合や要素が1つも含まれていない場合は0を返します。

構文

myqueue.size();

この関数は引数を受け取りません。

戻り値

unsigned int型の値として、関数に関連付けられたキューコンテナのサイズを返します。

使用例

入力: queue<int> myqueue = {10, 20, 30, 40};
      myqueue.size();
出力:
      4

入力: queue<int> myqueue;
      myqueue.size();
出力:
      0

サンプルコード

#include <iostream>
#include <queue>
using namespace std;
int main(){
    queue<int> Queue;
    Queue.push(10);
    Queue.push(20);
    Queue.push(30);
    Queue.push(40);
    cout<<"size of Queue is : "<<Queue.size();
    return 0;
}

出力結果

上記のコードを実行すると、以下の出力が得られます −

size of Queue is : 4

まとめ

queue::empty()はキューが空かどうかをbool値で判定する関数、queue::size()はキュー内の要素数をunsigned int型で取得する関数です。どちらも引数を取らず、<queue>ヘッダーをインクルードするだけで利用できます。キューの状態確認はアルゴリズム実装などでも頻繁に行われるため、これらの基本的なメンバ関数は確実に使いこなせるようにしておきましょう。

  1. 【C++ STL】forward_list::front()とforward_list::empty()の使い方を実例付きで解説

    本記事では、C++のSTL(標準テンプレートライブラリ)に用意されているforward_list::front()およびforward_list::empty()の動作、構文、具体的な使用例について詳しく解説します。 STLにおけるforward_listとは? forward_listは、シーケンス内の任意の位置に対して定数時間(O(1))で挿入・削除操作を行えるシーケンスコンテナです。内部は単方向リンクリストとして実装されており、各要素が持つ「次の要素へのリンク」によって順序が維持されます。std::listのような双方向リストと比べて要素あたりのメモリ消費が少なく、前方方向への走査に特化

  2. C++ STLのlist::empty()関数の使い方を徹底解説!構文・戻り値・実例付き

    本記事では、C++ STLにおける list::empty() 関数の動作、構文、そして具体的な使用例について詳しく解説します。 C++ STLにおけるList(リスト)とは? Listは、シーケンス内の任意の位置に対して定数時間での挿入と削除を可能にするデータ構造です。Listは双方向連結リストとして実装されており、非連続的なメモリ割り当てが可能です。 配列(array)、vector、dequeと比較して、Listはコンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。また、Li