STL中栈的定义

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、STL初识

二、stack的一些操作

1.stack的定义

2.stack自带的一些接口

总结



前言

提示:这里可以添加本文要记录的大概内容:

我们在c++语言的深入学习之后,各种算法也多多少少的见过一些,一些算法在STL中有现成的用法,我们在学习之后也可以直接使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、STL初识

STL提供了六大组件,包括:容器、算法、迭代器、仿函数、适配器、空间适配器,但我们所能接触到的基础的就是前面四项,其中容器、算法和迭代器是我们日常生活中经常遇到的,我们今天说的就是容器中的stack(栈),需要包含的头文件是#include<stack>。 

二、stack的一些操作

1.stack的定义

stack<int>MyStack;                        //容器名+数据类型名称+自定义名称

2.stack自带的一些接口

MyStack.push(i);                         //向栈顶添加元素
MyStack.pop();                           //从栈顶移除第一个元素,不作返回
MyStack.top();                           //返回栈顶元素
MyStack.size();                          //栈的大小
MyStack.empty();                         //栈是否为空
 这些接口我们都可以在定义后直接使用,相较于不用容器,我们这样书写代码简洁、清晰,不会出现自己编码出现的bug。

案例操作(如下):

#include<iostream>
using namespace std;
#include<stack>
int main() {
	stack<int>mystack;//STL中的栈的定义
	int sum = 0;
	for (int i = 0; i <= 10; i++) {
		mystack.push(i);//往栈中插入0-10
	}
	cout << "size is:" << mystack.size() << endl;//求所有元素的大小
	while (!mystack.empty())//栈不为空为循环条件
	{
		cout << mystack.top() << " ";//元素的获取
		sum += mystack.top();//求和操作
		mystack.pop();//相当于删除操作
	}
    cout << endl ;
	cout << "获取成功!" << endl;
	cout << "sum is:" << sum;
	cout << endl;
	system("pause");

	return 0;
}

总结

希望各位朋友在学习的道路上保持自己的勤奋,多动手,多出错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ STL中的是通过标准库中的`<stack>`头文件实现的。在C++中,定义为`stack<Type>`,其中`Type`是中存储的元素的类型。 的主要操作有: - `push(a)`:将元素`a`推入顶。 - `pop()`:删除顶的元素,但不会返回被删除的元素。 - `top()`:返回顶的元素,但不会删除顶元素。 - `size()`:返回中元素的个数。 - `empty()`:检查是否为空,如果为空返回`true`,否则返回`false`。 在C++ STL中,的实现使用了容器适配器的概念。基于的默认实现,它使用了`deque`(双端队列)作为其底层容器,但也可以选择使用`vector`或`list`作为底层容器。这意味着提供了一种在底层容器上进行堆操作的统一接口,无论使用哪种容器作为底层实现。 对于自定义实现,您可以参考以下示例代码: ``` #include <iostream> #include <stack> using namespace std; class My_stack { private: stack<int> data; public: void push(int x) { data.push(x); } int pop() { int x = data.top(); data.pop(); return x; } int top() { return data.top(); } bool empty() { return data.empty(); } }; int main() { My_stack s; s.push(1); s.push(2); s.push(3); cout << "Top element: " << s.top() << endl; // 输出顶元素 cout << "Pop element: " << s.pop() << endl; // 输出弹出的元素 cout << "Is stack empty? " << (s.empty() ? "Yes" : "No") << endl; // 检查是否为空 return 0; } ``` 以上是关于C++ STL的实现和用法的介绍。希望能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值