C++
文章平均质量分 73
tttjp
编程积极分子~~~
展开
-
String类的浅拷贝、深拷贝、引用计数、写时拷贝
皆以s2=s1为例浅拷贝:只是直接将s1的值拷贝过来,s1、s2共用同一块内存。class String{public: String(const char* str) :_str(new char[strlen(str) + 1]) { strcpy(_str, str); } String(const String& s) :_str(s._str) {}原创 2017-03-18 18:55:20 · 280 阅读 · 0 评论 -
C++实现二叉树的基本操作
树是一种重要的非线性数据结构,二叉树是树型结构的一种重要类型。本学年论文介绍了二叉树的定义,二叉树的存储结构,二叉树的相关术语,以此引入二叉树这一概念,为展开二叉树的基本操作做好理论铺垫。二叉树的基本操作主要包含以下几个模块:二叉树的遍历方法,计算二叉树的结点个数,计算二叉树的叶子结点个数,二叉树深度的求解等内容。原创 2017-07-23 20:36:55 · 930 阅读 · 0 评论 -
排序——选择排序
基本思想每一趟从无序区中选出最小的元素,顺序放在有序区的最后,直到全部元素排序完毕。 由于选择排序每一趟总是从无序区中选出全局最小(或最大)的元素,所以适用于从大量元速度中选择一部分排序元素。例如,从10000个元素中选出最小的前10位元素。直接选择排序1.排序思路从第i趟开始,从当前无序区arr[i…n-1]中选出最小元素arr[k],将它与有序区的最后一个元素,也就是无序区的第一个元素交换。每原创 2017-07-31 21:17:20 · 274 阅读 · 0 评论 -
排序——插入排序
基本思想每次将一个待排序的元素,按其大小插入到已经排好序的子序列的适当位置,知道全部元素插入完成为止。直接插入排序1.排序思路arr[0...i-1]为有序区(刚开始时i=1,有序区只有arr[0]一个元素),arr[i...size]为待排序区,每次将待排序区的第一个元素arr[i]插入到有序区中的适当位置,每趟操作都使有序区增加一个元素,待排序区减少一个元素。2.排序算原创 2017-07-30 21:46:31 · 273 阅读 · 0 评论 -
C++实现单例模式
一般在实际开发过程中,会专门有一个日志模块,负责写日志,由于在系统的任何地方,我们都有可能要调用日志模块中的函数,进行写日志。那么,如何构造一个日志模块的实例呢?难道,每次new一个日志模块实例,写完日志,再delete?在C++中,可以构造一个日志模块的全局变量,那么在任何地方就都可以用了,是的,不错。但是全局变量是一个定时炸弹,是一个不安全隐患,特别是在多线程程序中,会有很多的不可预测性,原创 2017-07-29 15:58:28 · 476 阅读 · 0 评论 -
STL中list的使用
STL中的list是一个双向链表容器,今天我准备研究一下它的使用方法。原创 2017-05-01 16:29:55 · 250 阅读 · 0 评论 -
浅谈继承与多态
学习C++的人都知道面向对象程序设计有4个主要特点:抽象、封装、继承和多态性。可见继承和多态在C++中占据的分量不一般。本篇文章分别用阐述概念和举栗说明两种方式研究继承与多态,其中会穿插图片说明,望达到轻松理解C++中继承与多态机制的效果。继承的概念所谓继承就是在一个已有类的基础上建立一个新的类。以存在的类称为“基类”或“父类”,新建的类称为“派生类“或”子类”。继承机制可提原创 2017-04-03 18:01:33 · 309 阅读 · 0 评论 -
C++模板类的类型萃取技术
模板是泛型编程的基础,所谓泛型编程就是指编写与类型无关的逻辑代码,是一种复用的方式。所以使用模板的目的就是方便程序员编写与类型无关的代码,减少相似代码在程序中出现的概率。假如我们要编写一个判断两个变量是否相等的函数,那么为了处理int,char,double等不同类型的变量,我们得一一写出这些类型的重载函数。这样不仅代码会显得十分冗余,也会增加程序员无谓的工作量。为了解决这个问题,C++中引入原创 2017-04-10 20:07:50 · 504 阅读 · 0 评论 -
C++实现日期类
用C++实现日期类原创 2017-03-15 18:36:11 · 311 阅读 · 0 评论 -
C++实现双向链表
C++实现双向链表原创 2017-04-08 19:36:43 · 231 阅读 · 0 评论 -
C++实现顺序表
C++实现顺序表原创 2017-04-07 23:25:15 · 492 阅读 · 0 评论 -
用C++实现单链表
C++实现单链表原创 2017-04-07 15:19:04 · 471 阅读 · 0 评论 -
C语言模拟实现继承和多态
面向过程编程与面向对象编程的区别 众所周知,C语言是一种典型的面向过程编程语言,而C++确实在它的基础上改进的一款面向对象编程语言,那么,面向过程与面向对象到底有什么样的区别呢?1.从设计方法角度看 面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来。 面向对象程序设计方法是将数据和对象的操作封装在一起,作为一个整体来转载 2017-07-28 18:36:43 · 311 阅读 · 0 评论