C++ Stack(堆栈)

C++ Stack(堆栈) 首页 / C++入门教程 / C++ Stack(堆栈)

在计算机科学领域,我们致力于各种程序。他们每个人都有自己的域和实用程序。根据程序创建的目的和环境,我们有大量数据结构可供选择。其中之一是"堆栈"。在讨论这种数据类型之前,让我们看一下它的语法。

template<class T, class Container = deque<T> > class stack;

此数据结构适用于LIFO技术,其中LIFO代表后进先出。首先插入的元素将在末尾提取,依此类推。有一个称为"顶部"的元素,它是位于最高位置的元素。所有插入和删除操作都是在堆栈的顶部元素本身进行的。

应用区域中的堆栈暗示为集合适配器。

集合应支持以下操作列表:

无涯教程网

  • empty
  • size
  • back
  • push_back
  • pop_back

参数

T                   -  该参数指定集合适配器将保留的元素的类型。

Container  - 该参数指定用于存放堆栈元素的集合内部对象。

类型

下面给出了堆栈类型的列表,并对其进行了简短描述。

类型 Description
value_type 指定了元素类型。
container_type 指定了基础集合类型。
size_type 它指定元素的大小参数。

函数

借助函数,可以在编程领域中使用对象或变量。堆栈提供了大量可以在程序中使用或嵌入的函数。相同的列表如下:

函数 说明
(con)structor 该函数用于构建堆栈集合。
empty 该函数用于测试堆栈是否为空。如果堆栈为空,则函数返回true,否则返回false。
size 该函数返回堆栈集合的大小,它是对堆栈中存储的元素数量的度量。
top 该函数用于访问堆栈的顶部元素。该元素起着非常重要的作用,因为所有插入和删除操作都是在顶部元素执行的。
pop 该函数用于在堆栈顶部插入新元素

示例:一个简单的程序,说明基本堆栈函数的用法。

#include <iostream>
#include <stack>
using namespace std;
void newstack(stack <int> ss)
{
	stack <int> sg = ss;
	while (!sg.empty())
	{
		cout << '\t' << sg.top();
		sg.pop();
	}
	cout << '\n';
}
int main ()
{
	stack <int> newst;
	newst.push(55);
	newst.push(44);
	newst.push(33);
	newst.push(22);
	newst.push(11);

	cout << "The stack newst is : ";
	newstack(newst);
	cout << "\n newst.size() : " << newst.size();
	cout << "\n newst.top() : " << newst.top();
	cout << "\n newst.pop() : ";
	newst.pop();
	newstack(newst); 
	return 0;
}

输出:

The stack newst is : 	11	22	33	44	55

 newst.size() : 5
 newst.top() : 11
 newst.pop() : 	22	33	44	55

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

玩转Spring全家桶 -〔丁雪丰〕

SQL必知必会 -〔陈旸〕

分布式技术原理与算法解析 -〔聂鹏程〕

DDD实战课 -〔欧创新〕

深入浅出云计算 -〔何恺铎〕

操作系统实战45讲 -〔彭东〕

搞定音频技术 -〔冯建元 〕

手把手教你落地DDD -〔钟敬〕

手把手带你写一个MiniSpring -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)