- 2
- 0
- 约14.23万字
- 约 79页
- 2017-01-02 发布于贵州
- 举报
C++中的堆与栈
整理者:陆晓明
1 基本概念
也不知道是什么原因,很多人总是把堆和栈混合一起,在写程序时,总是经常脱口而出地说堆栈。网上的一些资料说堆栈的叫法是有历史原因的,至于具体是什么历史原因,这不是本文所要讨论的问题。
堆:在数据结构中,堆是一种满足“堆性质”(至于什么是堆性质可以查阅任何一本数据结构的书)的数据结构。然而,通常我们所指的堆都是指二叉堆,即一种使用数组来模拟完全二叉树的结构。当然,也存在其它形式的堆,包括斐波拉契堆、二项堆、杨氏表等,想获得有关这些特殊堆的性质可以查阅算法导论。然而,在编译器中,堆是一个存储区,通常用于动态分配存储空间,一般堆具有不连续性(在下文中将讲到堆的不连续性)。
栈:在数据结构中,栈是一种按照数据项先进后出的顺序排列的数据结构,我们只能在栈顶来对栈中的数据项进行操作。然而在编译器中,栈通常是用来为函数中的临时变量分配存储空间,通常栈空间的分配具有连续性。
2 相关知识
通常一个由C++编译的程序占用的内存分为以下五个部分(这些知识对理解下文至关重要,这些是对一个基本的C++程序的存储方式的认识):
1)栈区(stack)
是由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2)堆区(heap
您可能关注的文档
- 岩土工程施工技术及其发展方向.doc
- 岳麓版九上历史第一单元_世界古代史复习提纲.doc
- 岳麓山风景与文化考察.doc
- 岳麓版2007年高考模拟测试.doc
- 岳麓版八年级历史上册全册学案.doc
- 岳麓经济史(必修二)教案.doc
- 峰值平均功率比.doc
- 崇安大桥试验检测方案与计划.doc
- 崇尚自然 践行开放 恪守信义.doc
- 崂山的交通信息.doc
- 新疆塔城地区第一高级中学2025-2026学年高一下学期学情自测物理试卷(含解析).docx
- 苏教版五年级上册数学 期中检测卷.doc
- 新疆维吾尔自治区昌吉回族自治州呼图壁县2025-2026学年九年级上学期1月期末英语试题(含解析).docx
- 新疆维吾尔自治区和田地区和田市2025-2026学年上学期八年级英语期末试卷(含解析).docx
- 四川省绵阳市游仙区2025-2026学年七年级上学期1月期末英语试题(含解析).docx
- 苏教版三年级上册数学 第三单元测试题.doc
- 四川省绵阳市梓潼县2025-2026学年八年级上学期1月期末物理试题(含解析).docx
- 四川省绵阳市盐亭县四校联考2025-2026学年八年级下学期物理学情自测(含解析).docx
- 房颤患者太极拳练习.pptx
- 苏教版五年级上册数学 期末检测卷.doc
最近下载
- VTE的预防和护理课件.ppt VIP
- 西宁西站扩能改造工程报告表.pdf VIP
- AP微积分AB 2015年真题 (选择题+问答题) AP Calculus AB 2015 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 人教版中考英语话题复习:饮食,疾病与健康课件.pptx VIP
- 安徽省合肥市普通高中六校联盟2024-2025学年高一下学期4月期中联考数学试题(含答案解析).docx VIP
- 12SS508混凝土模块式室外给水管道附属构筑物.docx VIP
- 三晶变频器SAJ8000变频器说明书.pdf
- 农用地估价技术报告(修正).doc VIP
- 英国石油公司BP的案例分析(60页).docx VIP
- 移动支架法在东风大道快速化改造二期工程中的应用.doc VIP
原创力文档

文档评论(0)