- 博客(100)
- 问答 (2)
- 收藏
- 关注
原创 C++继承详解一 ——继承、继承关系、赋值兼容规则、作用域
C++是一门面向对象的编程语言(OOP),它有三大特性:封装,继承,多态。 今天我来主要详解一下继承。 一,继承概念: 继承机制(inheritance)是面向对象程序设计中使代码可以复用的最重要手段。他允许程序员在保持原有类特性的基础上进行扩展,增加功能。继承是类之间的关系建模,共享公有的东西,实现各自本质不同的东西。这样产生的类叫做派生类,也叫子类。之前的类叫做基类,也叫父类。 二,继承
2017-03-30 13:30:29 1415
原创 冒泡排序的三种实现
今天呢,我们来看看冒泡排序的实现。对于冒泡排序是非常容易理解和实现的,今天我以从小到大排序为例进行详解。 我们先来看看冒泡排序的定义或者说冒泡排序的实现方法: 假设数组长度为N: 1,从第一个数据开始,比较相邻两个数据,如果前面数据大于后面数据,就交换两个数值; 2,遍历该数组,一次遍历结束后最大的数值就跑到了最后一位(即第N-1个位置); 3,N = N-1(最大数值位置已定不用再管);
2017-03-29 20:08:42 947
原创 Linux中有关find指令的用法
Linux中find指令显得尤为重要,所以我们有必要将find指令的相关用法进行总结性的详解,这对Linux的学习非常重要,如果能熟练掌握find指令,那你的Linux水平就不显得那么拙劣(开个玩笑。。。)。下面呢主要围绕find指令的相关操作以及所展示出的强大功能进行详解。 1,“find -name <文件名>”:查找文件所在的目录(这里准确说来展示的是相对路径),下面我听过两种方法来验证了结
2017-03-28 11:28:44 380
原创 C++实现双向链表
上一篇用C++实现了单链表。今天呢,我们来看看双向链表如何通过C++实现。双向链表也叫双链表,它的的每个数据节点都有两个指针,分别指向直接后继和直接前驱。所以从双向链表中的任何一个节点开始,都可以很方便的访问它的前驱节点和后继节点。#include<iostream>#include<assert.h>using namespace std;typedef int DataType;struc
2017-03-25 23:52:37 492
原创 C++实现单链表
之前通过C语言实现了单链表,今天我们来看看C++如何实现单链表? 下面是主代码:#include<iostream>#include<assert.h>using namespace std;typedef int DataType;struct SListNode //创建节点{ DataType data; SListNode* next; SListNod
2017-03-23 13:31:02 740
原创 mtine,ctime,atime的区别与联系
Access time. Modify time. Change time分别代表什么意义Linux系统中有三个主要的时间属性,分别是ctime(change time),atime(access time),mtime(modify time).他们具体有何意义?他们之间有何联系与区别呢?下面我来介绍一下这三个时间属性。 首先,先来看看他们的概念: atime:最后一次访问文件或目录的时间。
2017-03-21 00:07:18 955 1
原创 动态内存分配
C语言中内存分配方式1,从静态全局区分配 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,例如全局变量,static变量2,在栈上分配 在执行函数时,函数内局部变量的存储单元都可在栈上创建,函数执行结束时这些存储单元自动释放,栈内存分配运算内置于cpu的指令集中,效率高,但分配的内存容量有限3,从堆上分配(动态内存分配) 程序在运行时用ma
2017-03-14 12:20:17 402
原创 找寻单身狗(找一个数组中唯一不是一对的那个数)
这个题超级简单,但是需要你能转过弯来。道题主要考的是对位操作的理解及掌握程度,这下是不是茅塞顿开,这需要你日积月累的代码积累,不断提高自己的见识,以及你对知识点的理解。下来我们来看这个题,首先我们来看看异或(^)这个操作,他是相同为〇,不同为一。所以你将所提供的那一串数字全部异或,是不是两两抵消清零,剩下的就是那个数(单身狗),比如{1,2,1} : 1^2=3, 3^1=2, 答案是不是出来
2016-12-14 09:02:46 802
原创 strstr函数的实现
要正确写出strstr函数,首先必须清楚地认识到这个函数的功能,这个函数用来在一个字符串中找到目标字符串。下面这段代码是我自己写的,不是特别简练,往后还会完善。好了,我们来讲讲如何实现这个函数。首先判断目标字符串是否是空字符串,如果是就返回0,如果不是就先求出目标字符串的长度(判断时要用到),这简单,就等于嵌套了一个strlen函数,下来就是遍历字符串来寻找目标字符串,用for循环,条件是
2016-12-09 23:40:21 759
原创 地址空间的认知
首先我们必须清楚,地址空间不是物理内存。下图是地址空间的区域分布图我们先来介绍各区域:代码区就是保存代码的区域。静态全局区:保存自动全局变量和static变量(包括static全局变量和static局部变量)。堆区:由malloc系列函数或new操作符分配的内存。栈区:保存局部变量共享区:堆区和栈区的扩展区域。我们可以通过以下代码来验证这些区域的在地址空间的分布
2016-12-05 19:40:31 386
原创 关于宏的认识
百度百科是这么来定义宏的:宏是一种批量批处理的称谓。一般说来,宏是一种规则或模式,或称语法替换,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转化成对应的输出(通常也是字符串)。这种替换在预编译时进行。 这里先脑补一下高级语言的编译过程:码农辛苦敲进去的叫源程序(.cpp),第一步是预处理,第二步是编译,第三步是汇编,第四步是链接。 C语言编译过程
2016-12-04 14:42:42 513
原创 数据在内存中的存储之字符类型
首先,我们先来看看数据的类型:数据分为内置类型和自定义类型。而内置类型又分为整形,字符型,浮点型。而自定义类型又分为数组,结构体,共同体和枚举类型。具体细分看下图:今天我们先来看看字符型数据(char)在内存中的存储第一点我们要清楚Char类型属于有符号字符类型还是无符号字符类型的,这取决于编译器,不同的编译器默认类型是不同的,我们先来搞清我们电脑上的编译器属于哪种类型,用下面
2016-11-29 18:35:00 1351
空空如也
大牛们,看看这是咋回事,谢了
2017-04-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人