- 博客(18)
- 资源 (7)
- 收藏
- 关注

原创 C++单向链表之创建、插入、删除、查找、交换链表节点
链表:&emsp  链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,链表比较方便插入和删除操作。&emsp 下面直接通过代码进行展示:包括初始化一个可以指向任何数据类型的链表、链表中指定位置插入节点元素、链表中删除指定位置的节点元素、获取链表的长度
2020-05-10 13:26:23
871

原创 c++中迭代器与几种简单的算法
从语言的层次: 容器Container是个class template; 算法Algorithm是个function template; 迭代器Iterator是个class template; 仿函数Function是个class template; 适配器Adapter是个class template; 分配器Allocator是个clsaa templat
2017-12-17 22:12:28
615

原创 简述容器之rb_tree及其应用
概述: Red-Black tree(红黑树)是平衡二分搜寻树(balanced binary search tree)中常被使用的一种平衡二分搜寻树的特征:排列规则有利于search和insert,并保持适度平衡————无任何结点太深。 红黑树只要求局部平衡,C++ STL中的map、set、multimap、multiset都应用了红黑树。 红黑树的每个节点或者上都有存储位
2017-12-09 20:31:06
2320

原创 c++之list容器简述
List简述: List和Vector都是STL的序列式容器,唯一不同的地方就在于:Vector是一段连续的内存空间,List则是一段不连续的内存空间,相比于Vector来说,List在每次插入和删除的时候,只需要配置或释放一个元素空间,对于任何位置的插入和删除操作,List永远能做到常数时间。但是,List由于不连续的内存空间,导致不支持随机寻址,所以尺有所长寸有所短,在程序中选择使用那种容器还
2017-12-03 17:04:38
277

原创 c++之容器
简述: C++标准库中的代码几乎都是使用泛型编程(GP),而所谓的泛型编程:就是使用tmeplate为主要工具来编写程序。 C++标准库( C++ standard library ) 对于STL标准模板库而言,standard template library标准库以hearderfile形式呈现,所以可以看到其内容。对于C++标准库: 1).C++变准哭的hearder files
2017-11-26 22:01:08
343

原创 c++中new与delete的重载
对于有一定编程基础的人来说,new与delete一定会非常的熟悉,知道在使用的过程中:new 先分配memory(内存)再调用ctor(构造函数);而delete是先调用dtor(析构函数)再释放memory。int * p=new int[10];int * pa=new int(10); new用来动态创建数据或者单个对象;对于上面的代码,第一行是用new 动态创建一个长度为10的数据,指针
2017-11-17 21:33:53
362

原创 c++对象模型之vptr(虚指针)和vtbl(虚表)浅析
对于学习C++来说,类是一个非常重要的东西,对于面向对象的程序设计,又会设计到类的继承,委托,复合等。对于在类的继承中大多数人都会知道类在完成继承操作时的结果如何,但是如果问他,类在继承的过程中他的内存是如何实现管理的,相信许多人都不一定能够答上来,那么本博文结合我对类的继承过程的了解,给大家简单的说一下,类的继承过程是如何实现的。 在谈这个话题前,不可避免的我需要先引出vptr(虚指针)和vtb
2017-11-16 22:56:37
1469

原创 浅谈c++之指针型函数与函数指针
对于初入C/C++殿堂的人来说,当听到指针型函数与函数指针两个名词时有可能会在潜意思中认为,他们是同一个东西。但是事实并非如此。 函数指针与指针函数他们其实是两个不同的东西,对于函数的表达形式我们知道是: 返回类型 函数名(参数); 这一种表达形式,比如现在定义一个函数,其形式如下:int max(int a, int b); //1-1 从
2017-11-13 22:24:55
1138

原创 浅谈c++之面向对象程序设计的几种小技巧系列之第一部分
既然说是浅谈C++之面向程序设计,那么本次我会和大家分享面向对象设计中经常使用的几种类型:1.conversion function(转换函数)、2.non-explicit-one-argument-ctor、3.explicit-one-argument-ctor、4.pointer-like class(智能指针)、5.Function-like class(仿函数)、6.namespace(
2017-11-12 16:20:27
404

原创 c++面向对象之复合(composition)、委托(delegation)、继承(inheritance)
C++之面向对象 我们知道C++是C语言的升级版,C++保留了C语言原有的所有优点,并增加了面向对象(OO)的机制,C++最重要的一个概念就是“类”,有了类就有了面向对象的程序设计(OOP),类(class)是C++的核心。而所谓面向对象,则是指类和类之间的关系! 对于类(class)的使用又分为两种——C++基于对象和C++面向对象。所谓C++基于对象是指,程序设计中只是用来单一的类(单一的类
2017-11-05 08:19:14
3999
1

原创 c++之关键字static
关键字—static虽然名称为static,但实际上它一点都不安静。 我们对static这个关键字的作用有两个,一个是修饰变量,一个是修饰函数。[ 1 ] .static修饰变量:变量又分为局部变量和全局变量,但他们都存在内存的静态区。a.静态全局变量,作用域仅限于变量被定义的文件中,其他文件即使用extern申明也没法使用它。准确的说作用域是从定义之处开始,到文件结尾处结束,在定义之处前面的那
2017-10-26 21:09:46
279

原创 C++的类(class)中带有指针(*)
大家都知道C++是从早期的C语言逐渐发展演变而来的,对于指针(*)并不陌生。那么对于在C++的class中如果引入指针,那么该如何处理。下面通过对字符串类(class STRing{...};)的代码讲解来进行说明。设计字符串类的时候,采用指针,这样对于将来需要放多大的字符串内容,可以使用new的方式来动态分配,我们知道一个指针是4个byte,在字符串类中使用指针的好处还有一个就是,不管以后字符串
2017-10-24 22:45:24
8932

原创 C++基于对象与面向对象(一)
对于学习C++的同学们来说,知道C++语言是C语言的继承,但是又区别与C语言。既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,以及面向对象的程序设计,C++擅长于面向对象的程序设计。简单的说明下基于对象与面向对象的区别。所谓基于对象说的简单一点如:程序虽然是C++写的,与用C语言写代码相比它虽然引入了class(类),但是也只是单一的class(类),这里说的
2017-10-20 23:45:29
1151
原创 c++设计模式之单件模式
C++中单件模式的意图是为了保证一个类 仅有一个实例,并提供一个访问它的全局访问点。 动机: 对于一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印机假脱机,只应该有一个文件系统和一个窗口管理器。一个数据滤波器只能有一个A/D转换器。一个会计系统只能专用于一个公司。 对于怎样才能保证一个类只有一个实例并且这个实例易于被访问?一个全局变量使得一个对象可以被
2018-01-11 19:54:32
1565
原创 c++设计模式之工厂模式入门篇
设计模式简介 设计模式为开发人员提供一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特征:封装、继承、多态等。 常见的设计模式主要有:工厂模式、策略模式、适配器模式、单例模式、原型模式、模板方法模式、建造者模式、外观模式、组合模式、代理模式、享元模式、桥接模式、修饰模式、备忘录模式、中介者模式、职责链模式、观察者模式、状态模式。 下面我们来粗略的介绍下C++设
2018-01-07 13:23:48
362
原创 c++设计模式与面向对象之桥模式
重新认识面向对象 对象是什么? 从语言实现层面来看,对象分装了代码和数据;从规格层面讲,对象是一系列可被使用的公共接口;从概念层面讲,对象是某种拥有责任的抽象。 从宏观层面来看,面向对象的构建方式更能适应软件的变化,能够将变化所带来的影响减为最小; 从微观层面来看,面向对象的方式更强调各个类的“责任”由于需求的变化导致的新增类型不应该影响原来类型的实现——是所谓的各司其职:
2017-12-31 19:16:46
345
原创 一个万用的hash function
哈希函数: 一般的线性表,树中,记录在结构中的相对位置是随机的,既和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率依赖于查找过程中所进行的比较次数。理想的情况下是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立的对应关系f。使每个关键字的结构中一个唯一的存储位置相对应。 下面从侯捷老
2017-12-21 22:06:33
6856
1
原创 c++之简述左值引用(&)与右值引用(&&)
&与&& 对于在C++中,大家对于符号“ & ”的第一映像是引用和取地址,对符号“ && ”的第一映像是逻辑与。但是在C++11中我们会看到下方这种表示方法:int &&k=i+k; 对于第一眼见到上述的表达方式时,估计会一脸懵逼。下面对此做一个简述。 引用 & 是一个类型变量的别名。 通常使用 “ & ”是作为普通的左值引用,左值是可以放在赋值号 “ = ”的左边的值
2017-12-21 22:05:33
7512
2
STM32F411CEU6-FreeRTOS--project
2018-05-24
STM32F411系列keil工程文件
2018-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人