摘要: 对于单链表,我们大多时候会用指针来实现(可参考基于指针实现的单链表)。现在我们就来看看怎么用数组来实现单链表。 1. 定义单链表中结点的数据结构1 typedef int ElementType;2 class NodeType3 {4 public:5 ElementType dat... 阅读全文
posted @ 2014-10-27 19:32 峰子_仰望阳光 阅读(727) 评论(0) 推荐(0) 编辑
摘要: 对于单链表的介绍部分参考自博文数组、单链表和双链表介绍 以及 双向链表的C/C++/Java实现。 1. 单链表介绍 单向链表(单链表)是链表的一种,它由节点组成,每个节点都包含下一个节点的指针。 1.1单链表的示意图 表头为空,表头的后继节点是"节点10"(数据为10的节点),"节... 阅读全文
posted @ 2014-10-26 22:55 峰子_仰望阳光 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 此文整理自C++_友元函数及模板友元。 1. 引入友元函数原因 在实现类之间数据共享时,减少系统开销,提高效率。 具体来说:为了使其他类的成员函数直接访问该类的私有变量。 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。 优点:能够提高效... 阅读全文
posted @ 2014-10-22 21:02 峰子_仰望阳光 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 可参考自: C++之标准设备IO操作流 C++之预定义类型IO格式控制 C++之文件IO操作流 阅读全文
posted @ 2014-10-21 19:18 峰子_仰望阳光 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 本文主要整理自C++之运算符重载及C++运算符重载总结。什么是运算符重载 运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不同行为的发生。如:1 int i;2 int i1=10,i2=10;3 i=i1+i2;4 std::coutreal = real; 9... 阅读全文
posted @ 2014-10-21 17:18 峰子_仰望阳光 阅读(998) 评论(1) 推荐(0) 编辑
摘要: 原文链接:http://blog.csdn.net/csdnji/article/details/169200 左值(lvalue)和右值(rvalue)是编程中两个非常基本的概念,但是也非常容易让人误解,看了很多文章,自我感觉真正将这个问题讲的很透彻的文章还没有看见,所以自告奋勇来尝试一下。如果... 阅读全文
posted @ 2014-10-21 13:37 峰子_仰望阳光 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 本文主要整理自博文C++中的指针与引用及C++中引用传递与指针传递区别(进一步整理)。指针和引用的定义指针 对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义: 引... 阅读全文
posted @ 2014-10-21 13:20 峰子_仰望阳光 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 我们利用静态分配的数组来实现的顺序表的局限还是挺大的,主要在于它的容量是预先定好的,用户不能根据自己的需要来改变。如果为了后续用户能够自己调整顺序表的大小,动态地分配数组空间还是很有必要的。基于动态分配的数组的顺序表绝大部分跟基于静态分配的数组的顺序表是一样的,只需在后者程序上改动一小部分即可。... 阅读全文
posted @ 2014-10-20 22:50 峰子_仰望阳光 阅读(1182) 评论(0) 推荐(0) 编辑
摘要: 首先,我们来搞明白几个概念吧(参考自网站数据结构及百度百科)。 线性表 线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。在实现线性表数据元素的存储... 阅读全文
posted @ 2014-10-18 18:46 峰子_仰望阳光 阅读(990) 评论(0) 推荐(0) 编辑
摘要: 在编写含有模板的程序的时候,我还是按照一个头文件声明,一个源文件的方法来组织,结果编译的时候总出现一些很奇怪的语法问题,但程序明明是没有问题的。后来经过查阅才知道原来是因为C++编译器不支持对模板的分离式编译,详细原因可参考博文为什么C++编译器不能支持对模板的分离式编译。所以,我在编写程序的时... 阅读全文
posted @ 2014-10-18 00:12 峰子_仰望阳光 阅读(562) 评论(0) 推荐(0) 编辑