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
广告