这次的代码比较长,原因是比之前的Vector实现增加了许多的操作,而且毕竟指针操作嘛,处理起来稍微麻烦一点。
List实现中非常重要的一点,就是定义一个头指针和一个尾指针,这样可以避免对很多的特殊情况的处理,当链表为空时就是头指针指向尾指针,另外一个就是迭代器的实现,
list的迭代器的实现比vector要麻烦许多,因为内存不连续,所有采用了内部嵌套类的方式,重载了*(解引用),++EXP(前...
分类:
编程语言 时间:
2015-08-25 16:37:20
阅读次数:
168
auto_ptr它是C++标准库()为了一个智能指针类模板来解决资源泄漏所提供的问题(注意:这只是一个简单的智能指针)auto_ptr在事实原则的实现RAII,对资源的访问,在施工时间。释放资源时,析构函数,而相关的指针操作超载。使用起来就像普通的指针。std::auto_ptr pa(new Cl...
分类:
编程语言 时间:
2015-08-13 08:49:24
阅读次数:
229
?、内存管理的?式 1、内存常见问题 (1)野指针异常:指针操作已经销毁的对象 指针指向某对象,该对象释放后,该指针即为野指针,对其操作造成野指针异常。 原因:过度释放。 (2)内存溢出:超出内存上限 iOS给每个...
分类:
其他好文 时间:
2015-08-12 01:31:56
阅读次数:
149
思路:因为nums1的空间>= m+n,故可以用三个指针, k = m+n-1, i = m - 1, j = n - 1,操作都在数组nums1上进行,最后再把nums2中剩余的元素拷贝到nums1中即可。Java代码如下: public void merge(int[] nums1, in...
分类:
其他好文 时间:
2015-08-08 19:45:12
阅读次数:
102
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的。很多的面试官喜欢出链表相关的问题,就是想通过指针操作来考察应聘者的编码功底。为了避免出错,我们最好先进行全面的分析。在实际软件开发周期中,设计的时间通常不会比编码的时间短。在面试的时候我们不要急于动手写代码,而是一开始仔细分析和涉及,这将会给面...
分类:
编程语言 时间:
2015-08-01 17:19:10
阅读次数:
150
一. 内存管理的三种方式为什么要进行内存的管理呢?
iOS程序会出现Crash(闪退)问题,90%以上都是因为内存问题.
内存问题体现在两个方面:内存溢出 、野指针异常.
内存溢出: iOS会给每个应用程序提供一定的内存,用于程序运行.而一旦超出了内存上限,程序就会Crash.野指针异常: 对象内存空间已经被系统回收, 却仍然使用指针操作这块内存.一. 垃圾回收(gc):java常见的管理内存...
分类:
其他好文 时间:
2015-07-28 21:05:53
阅读次数:
100
1 文件映射 文件映射(Memory-MappedFiles)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。 Win32API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使.....
分类:
系统相关 时间:
2015-07-26 17:05:36
阅读次数:
129
C++中的引用与指针的区别指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void*指针操作对象必须进行类型转化。 ★ 相同点: 1. 都是地址的概....
分类:
编程语言 时间:
2015-07-24 12:44:57
阅读次数:
162
静态链表是使用数组实现的可以快速插入和删除数据的链表,静态链表和链式单链表比的缺点在于链表的长度只能初始化设置好,而相对应普通的顺序存储的链表,静态链表不能实现快速的读写任意的元素。
当然静态链表给了我们一种思考方式,当我们在特定状态下,不能使用指针操作时,我们可以使用一种替代指针的方法,静态链表使用的cur来表示当前节点的下一个节点的下标。
#pragma once
#define MAXS...
分类:
编程语言 时间:
2015-07-22 14:49:55
阅读次数:
126
相信不少人面试的时候,会遇到面试官让你写出strcmp, strlen, strcopy,strcat等函数,下面给出比较完美的实现,自行把握里面一些关键的点,例如参数的判断,const参数,指针操作等等。
//strcpy函数:
char *strcpy(char *strDest, const char *strSrc)
{
if (strDest == NULL || strSrc...
分类:
编程语言 时间:
2015-07-14 15:34:16
阅读次数:
118