C++怎么定义一个指定大小的堆栈?

请问一下堆栈一定要自己写吗?为什么网上的好多都是自己实现结构体的定义和push,pop的方法,可不可以直接引用啊?两种方法的区别在哪里啊?好迷茫。。。能不能举例说明一下... 请问一下堆栈一定要自己写吗?为什么网上的好多都是自己实现结构体的定义和push,pop的方法,可不可以直接引用啊?两种方法的区别在哪里啊?好迷茫。。。能不能举例说明一下 展开
 我来答
天使HK
2014-07-02 · TA获得超过436个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:156万
展开全部
C语言的堆栈我也没用过。
不过C语言能自己定义个堆,用malloc函数,然后自己写几个函数,模拟入栈堆栈。
在汇编中,堆栈是通过寄存器内部地址指向,来定义栈顶的,大小未定义。
然后从这个栈顶开始,用PUSH往栈里添加(入栈),用POP往栈里取出(出栈)。
具体的汇编指定举例如下:
push ax //把寄存器ax的值压入栈
pop ax //取栈的值,到寄存器ax中
而栈的地址则有ss、sp这两个寄存器指定,栈没有大小,要人工防止溢出。
具体C结合汇编,是一定能写出一个堆栈的,不过可能比较麻烦,我也刚研究汇编,不是太懂。这里只能给楼主一些思路。
罪恶欲都
推荐于2018-03-23 · 超过47用户采纳过TA的回答
知道答主
回答量:177
采纳率:0%
帮助的人:114万
展开全部
自己实现结构体的定义和push,pop的方法一般是C语言,C++中提供了STL就是标准模板库,里面有常用的数据结构,栈、队列、优先队列等,建议C++使用STL。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小傻

推荐于2016-03-04 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31135
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部
c++定义一个指定大小的堆栈使用如下方式:
堆空间一般有操作系统的堆管理器来处理,栈空间一般是应用程序自动回收管理的,以Windows为例,每一个应用程序默认的堆和栈空间大小都为1M。用户可以使用如下预处理命令指示链接器设置堆或者栈空间的大小。
#pragma comment(linker, "/STACK:1024000000,1024000000")

/STACK:[保留虚拟内存],[提交虚拟内存] ,这里的大小都是字节。所以上面的1024000000是字节数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忽忽上升
推荐于2016-06-18 · TA获得超过1911个赞
知道小有建树答主
回答量:1166
采纳率:70%
帮助的人:580万
展开全部
可以直接引用。
#include<stack>
stack<int>s1(30);//定义一个30大小的int型栈
追问
那stacks1(30)这样同时就分配好空间,后面直接就可以push,pop而不用malloc了吗?
追答
是的,这是STL的库,都定义好了,直接用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式