- 博客(10)
- 收藏
- 关注
原创 C++中类成员对象与指针的区别
C++编程过程中,在一个类的数据成员是一个类时,定义这个成员变量为对象还是指针是有讲究的。在C++中,ClassTest objTest;就已经构造了对象,分配了空间而在C#、Java中,ClassTest objTest;只是声明,并没有分配空间。在C++中,ClassTest objTest;是在栈上分配空间,ClassTest *pobjTest = new Clas
2017-03-29 22:46:43 4573 2
转载 C++之Set
转载自:http://blog.csdn.net/wangran51/article/details/8836160感谢总结!set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索
2017-03-26 07:43:57 301
原创 算法之路(三)——BFS
最近由于要忙论文开题的事,还有实习工作也比较忙,所以这个系列的博客好久没有更新了。BFS是一种基于“队列”这种数据结构的搜索方式,特点是由一个状态拓展出很多状态,然后再由此扩展,直到找到目标状态或者队列中头尾指针相遇,即队列中所有状态都处理完毕。BFS对于解决最短或最少问题特别有效,而且寻找深度小,但缺点也很明显,内存消耗巨大(因为它需要大量的数组单元用来存储状态)。下面是实现BFS的
2017-03-25 16:58:45 872
原创 Linux学习之g++编译命令
有关gcc和g++的区别我就不赘述了,我个人更喜欢用g++来编译链接c++程序,因为它检查规则更严格。[介绍]gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇
2017-03-25 15:13:02 1101
原创 C++指针delete后需要做
C++标准规定:delete空指针是合法的,没有副作用。所以我们一般在delete后就以为万事大吉了,其实这是不安全的。 我们在Delete指针后赋值为NULL或0是个好习惯。对一个非空指针delete后,若没有赋NULL,若再次delete的话有可能出现问题。如下代码:可以看出delete是释放指针指向的内存,并不是指针本身所占有的内存。所以delete后,指针的
2017-03-24 12:34:24 2338
原创 C++单例模式原理与实现
今天有一个同学问我单例模式的实现方式,就顺手写篇文章记录一下。单例模式,可以说设计模式中最常应用的一种模式了,据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况,可能会优先考虑使用全局或者静态变量的方式,这样比较简单,也是没学过设计模式的人所能想到的最简单的方式了。一般情况下,我们建立的一些类是属于工具性质的,基本不用存储太多
2017-03-24 12:17:53 962
转载 Linux学习之gdb调试
一.gdb常用命令:命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行
2017-03-18 10:49:37 324
转载 C++之Map
看到一篇介绍map很不错的文章,转载一下,感谢原作者的整理。转载地址:http://blog.csdn.net/shuzfan/article/details/53115922一 声明二 插入操作1 使用 进行单个插入1 使用insert进行单个和多个插入三 取值四 容量查询五 迭代器六 删除交换1 删除2 交换七 顺序比较八 查找九 操作符
2017-03-17 09:44:04 483
原创 算法之路(二)
上一篇写了DFS的递归方式实现,这次写一下非递归实现。原理其实非常简单:我用栈去实现的,栈实现的基本思路是将一个节点所有未被访问的“邻居”(即一层层邻居节点)压入栈中“待用”,然后围绕顶部节点猛攻,每个节点访问 后被弹出。下面是实现的代码,仅供参考~#include #include using namespace std;#define MaxNode 20#
2017-03-16 21:45:43 330
原创 算法之路(一)
写在前面: 好久没有复习算法这部分的知识了,以前也养成了不好的习惯,眼高手低,理解了算法的原理,不怎么去写伪代码,也很少真的去编译一下代码。以后要改正这个不好的习惯。从今天开始,把以前学习过的算法编译一遍,当做复习。注:我编译代码的环境有两种:1、ubuntu14.04, g++4.8.4 2、VS2015代码基本上都是用C++写的,顺便改进下C++的编程习惯。有诸多不足,
2017-03-11 15:30:43 519
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人