- 博客(5)
- 资源 (4)
- 收藏
- 关注
原创 链表和数组的区别
(1)从逻辑结构上看,数组在初始化时必须固定其长度,无法动态增加元素,容易造成越界或内存浪费,链表可以动态的插入和删除数据项; (2)从内存上看静态的数组从栈中分配内存空间,对于程序员来说自由快捷但是自由度小,链表则在堆中分配内存空间,自由度大,但是申请比较麻烦; (3)从访问的方式看,数组在内存中是连续存储的,因此可以利用下标元素进行访问,链表是链式存储的,在访问元素的时候通过线性的
2015-01-12 10:40:05 395
原创 C++内存笔记
在c++中,内存一般分为5个区,分别为:堆,栈、自由存储区、全局静态存储区、常量存储区; (1)栈:执行函数时,函数内局部变量的存储单元可以在栈上创建,函数执行结束时,内存自动被释放,栈内存分配运算内置于处理器的指令集中,效率很高但是分配的内存变量有线; (2)堆:就是那些由new分配的内存块,编译器不负责内存的释放,而是由应用程序来控制。一般一个new对应于一个del
2015-01-12 10:38:27 351
原创 浅谈----指针和引用的区别
(1)是否为空的区别 引用不能指向空值,且必须指向一个对象不能为空,指针可以为空; (2)是否可修改的区别 引用总是指向初始化被指定的内存对象,不能改变,但是指定内存对象的内容可以改变;指针可以被重新赋值指向不同的内存对象; (3)合法性区别; 使用指针前需要的是其是否为空,防止程序崩溃,而使用引用则不需要进行判断;
2015-01-12 10:37:31 351
原创 几种常见的排序算法原理及时空复杂度
排序算法分为两大类:简单排序算法和高级排序算法假设一下元素都有n个 《1》常见的简单排序算法 (1)冒泡法:从最后一个元素开始依次和前面的元素比较;最后一个和前面所有的比较完后,倒数第二个再和前面的比较 最坏情况下:循环次数为n-1,交换次数n-1,时间复杂度为O(n^2); (2)交换法:从第一个元素开始,用当前的元素依次和后面的元素相比较; 最坏情况下:循环次数为
2015-01-12 10:36:42 609
原创 面试题1------定义一个赋值运算符函数
解题思路:主要需要考虑以下四个方面 (1)把返回值的类型声明为该类型的引用,并在函数结束前返回自身的引用(即*this),只有返回一个引用才能保证连续赋值; (2)把传入的参数类型声明为常量引用,可以避免多次调用构造函数造成无谓的内存损耗; (3)是否释放实例自身的内存,如果在分配新内存前为释放之前的内存,则会造成内存泄露; (4)是否判断传入的实例和当前的实例是否为同一个
2015-01-12 10:33:58 464
Visual Assist X 10.9.2231.0 可安装vs2010 - vs2017 版本
2017-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人