C++でスタックが空かどうかを確認する方法


  1. スタックの実装方法によって異なりますが、一般的には、スタックが空かどうかを確認するためには、スタックが保持している要素の数を調べる必要があります。

    例えば、std::stackを使用してスタックを実装している場合、以下のようなコードを使うことができます:

    #include <iostream>
    #include <stack>
    int main() {
       std::stack<int> myStack;
       // スタックが空かどうかを確認する
       if (myStack.empty()) {
           std::cout << "スタックは空です" << std::endl;
       } else {
           std::cout << "スタックは空ではありません" << std::endl;
       }
       return 0;
    }

    上記の例では、empty()関数を使用してスタックが空かどうかを確認しています。

  2. スタックの実装が配列ベースの場合、インデックス変数を使用してスタックの先頭を示すポインタを追跡することもできます。スタックが空の場合、ポインタの値は-1になります。

    以下は、配列を使用してスタックを実装する場合の例です:

    #include <iostream>
    const int MAX_SIZE = 100;
    int stack[MAX_SIZE];
    int top = -1;
    bool isEmpty() {
       return (top == -1);
    }
    int main() {
       // スタックが空かどうかを確認する
       if (isEmpty()) {
           std::cout << "スタックは空です" << std::endl;
       } else {
           std::cout << "スタックは空ではありません" << std::endl;
       }
       return 0;
    }

    上記の例では、isEmpty()関数を使用してスタックが空かどうかを確認しています。

以上の方法を使用することで、C++でスタックが空かどうかを確認することができます。これにより、プログラムのロジックやエラーチェックに役立てることができます。