C++ Stack::size() 函式



C++ 函式std::stack::size()返回棧中存在的元素總數。

我們可以使用 size() 函式來檢查給定的棧是否為空,因為它在棧不包含任何元素時將返回 0。

size() 函式是用於管理 C++ 中棧的簡單而有效的工具。在許多情況下,瞭解棧的大小都很有用,例如分配記憶體、將元素複製到另一個棧或容器、從棧中刪除元素或調整資料結構的大小。

語法

以下是 std::stack::size() 函式的語法:

stack_name.size();

引數

此函式不接受任何引數。

返回值

返回棧中存在的元素數量。

示例 1

以下示例演示了 std::stack::size() 函式的用法。在這裡,我們建立一個空棧 's' 並使用 size() 函式檢索其大小。

#include <iostream>
#include <stack>
using namespace std;

int main() {
   stack<int> s;
   cout << "Initial size of stack = " << s.size() << endl;
   return 0;
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Initial size of stack = 0

示例 2

在這裡,我們建立一個棧 's'。然後,我們使用 for 迴圈和 push() 函式將整數 1 到 5 插入 's'。此後,我們使用 size() 函式檢索棧的大小。

#include <iostream>
#include <stack>
using namespace std;

int main() {
   stack<int> s;
   for (int i = 0; i < 5; ++i)
      s.push(i);
   cout << "Size of stack after adding 5 elements = " << s.size() << endl;
   return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出:

Size of stack after adding 5 elements = 5

示例 3

現在,我們嘗試從棧中刪除元素,然後在彈出所有元素之前和之後列印其大小。

#include <iostream>
#include <stack>
using namespace std;

int main() {
   stack<int> s;
   for (int i = 0; i < 5; ++i)
      s.push(i);
   cout << "Size of stack before popping elements = " << s.size() << endl;
   while (!s.empty())
      s.pop();
   cout << "Size of stack after popping elements = " << s.size() << endl;
   return 0;
}

輸出

以下是上述程式碼的輸出:

Size of stack before popping elements = 5
Size of stack after popping elements = 0

示例 4

在以下示例中,我們建立了兩個棧 's1' 和 's2'。然後,我們將元素插入 s1 並將 's1' 中的所有元素複製到 's2'。然後,我們使用 size() 函式檢索兩個棧的大小,證明 's2' 是 's1' 的副本。

#include <iostream>
#include <stack>
using namespace std;

int main() {
   stack<int> s1;
   stack<int> s2;
   for (int i = 0; i < 5; ++i)
      s1.push(i);
   s2 = s1;
   cout << "Size of stack s1 = " << s1.size() << endl;
   cout << "Size of stack s2 (copy of s1) = " << s2.size() << endl;
   return 0;
}

輸出

上述程式碼的輸出如下:

Size of stack s1 = 5
Size of stack s2 (copy of s1) = 5
廣告