随笔分类 -  C++编程之美

摘要:1. 前言 树是一种很重要的数据结构,最初对数据结构的定义就是指对树和图的研究,后来才广义化了数据结构这个概念。从而可看出树和图在数结构这一研究领域的重要性。 树和图重要的原因是,它让计算机能建模出现实世界中更多领域里错综复杂的信息关系,让计算机服务这些领域成为可能。 本文将和大家聊聊树的基本概念, 阅读全文
posted @ 2022-10-25 08:46 一枚大果壳 阅读(720) 评论(0) 推荐(0) 编辑
摘要:1. 前言 队列和栈一样,都是受限的数据结构。 队列遵循先进先出的存储原则,类似于一根水管,水从一端进入,再从另一端出去。进入的一端称为队尾,出去的一端称为队头。 队列有 2 个常规操作: 入队:进入队列,数据总是从队尾进入队列。 出队:从队列中取出数据,数据总是从队头出来。 本文将先从STL的队列 阅读全文
posted @ 2022-10-14 09:24 一枚大果壳 阅读(581) 评论(0) 推荐(0) 编辑
摘要:1. 前言 表达式求值对于有知识积累的你而言,可以通过认知,按运算符的优先级进行先后运算。 但对计算机而言,表达式仅是一串普通的信息而已,需要通过编码的方式告诉计算机运算法则,这个过程中栈起到了至关重要的作用。 表达式由 2 部分组成: 操作数。 运算符。 在一个复杂的表达式中,操作数和运算符可以有 阅读全文
posted @ 2022-10-13 08:36 一枚大果壳 阅读(4111) 评论(1) 推荐(4) 编辑
摘要:C++ 栈和迷宫问题 1. 前言 栈是一种受限的数据结构,要求在存储数据时遵循先进后出(Last In First Out)的原则。可以把栈看成只有一个口子的桶子,进和出都是走的这个口子(也称为栈顶),封闭的另一端称为栈底。 什么时候会用到栈? 现实世界里,类似于栈的存储现象很普通。 当我们需要同时 阅读全文
posted @ 2022-10-10 13:11 一枚大果壳 阅读(796) 评论(0) 推荐(1) 编辑
摘要:1. 初识 STL 什么是STL? STL(Standard Template Library) 是C++以模板形式提供的一套标准库,提供了很多开发过程需要的通用功能模块。使用 STL ,可以让开发者将主要精力用于解决程序的高级业务逻辑,而无须关心底层的基础逻辑调用。 STL 由 6 大部分组成: 阅读全文
posted @ 2022-09-28 09:51 一枚大果壳 阅读(645) 评论(0) 推荐(4) 编辑
摘要:C++ "链链"不忘@必有回响之双向链表 1. 前言 写过一篇与单链表相关的博文(https://blog.51cto.com/gkcode/5681771),实际应用中,双向循环链表的功能更强大。 单链表中,查询一个已知结点的后驱结点的时间复杂度为O(1)。因结点本身不存储与前驱结点相关的地址信息 阅读全文
posted @ 2022-09-23 08:40 一枚大果壳 阅读(399) 评论(1) 推荐(0) 编辑
摘要:1. 前言 数组和链表是数据结构的基石,是逻辑上可描述、物理结构真实存在的具体数据结构。其它的数据结构往往在此基础上赋予不同的数据操作语义,如栈先进后出,队列先进先出…… 数组中的所有数据存储在一片连续的内存区域;链表的数据以结点形式存储,结点分散在内存的不同位置,结点之间通过保存彼此的地址从而知道 阅读全文
posted @ 2022-09-16 09:49 一枚大果壳 阅读(345) 评论(0) 推荐(1) 编辑
摘要:1. 前言 什么是函数模板? 理解什么是函数模板,须先搞清楚为什么需要函数模板。 如果现在有一个需求,要求编写一个求 2 个数字中最小数字的函数,这 2 个数字可以是 int类型,可以是 float 类型,可以是所有可以进行比较的数据类型…… 常规编写方案:针对不同的数据类型编写不同的函数。 #in 阅读全文
posted @ 2022-09-06 14:07 一枚大果壳 阅读(439) 评论(0) 推荐(2) 编辑
摘要:1. 前言 程序中的数据总是在流动着,既然是流动就会有方向。数据从程序的外部流到程序内部,称为输入;数据从程序内部流到外部称为输出。 C++提供有相应的API实现程序和外部数据之间的交互,统称这类API为 IO 流API。 流是一个形象概念,数据从一端传递到另一端时,类似于水一样在流动,只是流动的不 阅读全文
posted @ 2022-08-29 10:50 一枚大果壳 阅读(574) 评论(0) 推荐(1) 编辑
摘要:1. 前言 随着计算机向着不同领域的延伸,数据的概念已经不仅局限于数值型数据,计算机需要处理大量的非数值、且复杂的类型数据。 为了能抽象地描述这些非数值、复杂类型的数据,C++引入了复合数据类型的概念。 C++数据类型分基本(原生)数据类型和复合数据类型,结构体就是一种复合数据类型。可认为复合数据类 阅读全文
posted @ 2022-08-22 12:51 一枚大果壳 阅读(698) 评论(1) 推荐(0) 编辑
摘要:1. 前言 什么是哈夫曼树? 把权值不同的n个结点构造成一棵二叉树,如果此树满足以下几个条件: 此 n 个结点为二叉树的叶结点 。 权值较大的结点离根结点较近,权值较小的结点离根结点较远。 该树的带权路径长度是所有可能构建的二叉树中最小的。 则称符合上述条件的二叉树为最优二叉树,也称为哈夫曼树(Hu 阅读全文
posted @ 2022-08-19 14:22 一枚大果壳 阅读(690) 评论(2) 推荐(0) 编辑
摘要:1. 前言 什么是特殊矩阵? C++,一般使用二维数组存储矩阵数据。 在实际存储时,会发现矩阵中有许多值相同的数据或有许多零数据,且分布呈现出一定的规律,称这类型的矩阵为特殊矩阵。 为了节省存储空间,可以设计算法,对这类特殊矩阵进行压缩存储,让多个相同的非零数据只分配一个存储空间;对零数据不分配空间 阅读全文
posted @ 2022-08-15 08:57 一枚大果壳 阅读(944) 评论(0) 推荐(2) 编辑
摘要:1. 函数基础 一个C++程序中,往往需要包含若干个函数,可以说函数是C++程序的基础组成元件,是程序中的头等公民。 如果要理解程序中使用函数的具体意义,则需要了解语言发展过程中致力要解决的 2 问题: 一是完善语言的内置功能库(API),让开发者不为通用功能所干扰。 另就是通过特定的代码组织方案提 阅读全文
posted @ 2022-08-09 09:11 一枚大果壳 阅读(486) 评论(0) 推荐(0) 编辑
摘要:1. 前言 C++中的一维数组可以存储线性结构的数据,二维数组可以存储平面结构的数据。如班上所有学生的各科目成绩就有二个维度,学生姓名维度和科目成绩维度。 这样的表格数据可以使用二维数组进行存储。 当需要存储更多维度的数据时,可以使用多维数组。 二维数组和矩阵的关系: 有些教材上,把二维数组和矩阵当 阅读全文
posted @ 2022-07-05 08:40 一枚大果壳 阅读(1293) 评论(0) 推荐(1) 编辑
摘要:1. 指针 指针是一种C++数据类型,用来描述内存地址。 什么是内存地址? 内存中的每一个存储单元格都有自己的地址,地址是使用二进制进行编码。地址从形态上看是一个整型数据类型。但是,它的数据含义并不表示数字,而是一个位置标志,类似于门牌号。 指针类型数据的算术运算: 在地址上加上或减去一个正整数,表 阅读全文
posted @ 2022-07-04 09:45 一枚大果壳 阅读(564) 评论(0) 推荐(2) 编辑
摘要:C++ 练气期之细聊字符串 1. 概念 程序不仅仅用于数字计算,现代企业级项目中更多流转着充满了烟火气的人间话语。这些话语,在计算机语言称为字符串。 从字面上理解字符串,类似于用一根竹签串起了很多字符,让人很容易想起冰糖葫芦。 字符串的基本组成元素是字符,可以认为字符串就是字符类型的数组。 量变总会 阅读全文
posted @ 2022-06-30 13:33 一枚大果壳 阅读(973) 评论(0) 推荐(0) 编辑
摘要:1. 数组概念 变量是内存中的一个存储块,大小由声明时的数据类型决定。 数组可以认为是变量的集合,在内存中表现为一片连续的存储区域,其特点为: 同类型多个变量的集合。 每一个变量没有自己的名字。 数组会为每一个变量分配一个位置编号 。 可以通过变量在数组中的位置编号(下标)使用变量。 C++中称数组 阅读全文
posted @ 2022-06-24 14:35 一枚大果壳 阅读(644) 评论(1) 推荐(0) 编辑
摘要:1. 前言 编写程序时,数据确定后,就需要为数据提供相应的处理逻辑(方案或算法)。所谓逻辑有 2 种存在形态: 抽象形态:存在于意识形态,强调思考过程,与具体的编程语言无关。 具体形态:通过代码来实现。需要使用表达式描述完整的计算过程。 表达式由 2 个部分组成: 数据。也可称为操作数。 运算符。 阅读全文
posted @ 2022-06-22 11:03 一枚大果壳 阅读(686) 评论(1) 推荐(0) 编辑
摘要:1. 前言 什么是变量的生命周期? 从变量被分配空间到空间被收回的这一个时间段,称为变量的生命周期。 什么是变量的作用域? 在变量的生命周期内,其存储的数据并不是在任何地方都能使用,变量能使用的范围,称为变量的作用域。 广义而言,可以根据变量的声明位置,把变量分为全局(全局作用域)变量和局部(局部作 阅读全文
posted @ 2022-06-17 13:22 一枚大果壳 阅读(969) 评论(0) 推荐(1) 编辑
摘要:1. 前言 数据在程序中的重要性,怎么强调都不为过,程序的本质就是通过提供数据处理逻辑,把数据从一种状态变成另一种状态的过程。处理逻辑一定是有针对性的,针对的是数据本身的特性。 只有了解了数据本身的内在逻辑含义以及数据间的逻辑关系,才能提供恰到好处的处理逻辑。如,根据面粉的特性适用于制作面包、面条的 阅读全文
posted @ 2022-06-14 11:09 一枚大果壳 阅读(674) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示