- 博客(9)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
转载 STL-- set
set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名思义是“集合”的意思,在set中元素都是唯一的,而且默认情况下会对元素自动进行升序排列,支持集合的交
2017-05-31 16:33:33 284
原创 排序算法总结
时间然复杂度(o(n^2)))的排序算法1.冒泡排序;时间复杂度(0(n^2))实现过程:从头开始两两第一个数进行交换2.选择排序;时间复杂度(0(n^2))实现过程:每次在数字中找到最小的,然后与第一个数进行交换3.插入排序;时间然复杂度(o(n^2)))实现过程:每次和前面的数进行比较,后是否交换位置时间然复杂度(o(n*lo
2017-05-31 15:49:26 229
转载 最长公共子序列
题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子序列,并打印出最长公共子序列。 例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子序列,则输出它们的长度4,并打印任意一个
2017-05-28 18:19:03 520
转载 动态规划
动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适从。我觉得,理解算法最重要的还是在于练习,只有通过自己练习,才可以更快地提升。话不多说,接下来,下面我就通过一个
2017-05-28 17:32:28 544
原创 智能指针
智能指针:它的一种通用实现方法是采用引用计数的方法。智能指针将一个计数器与类指向的对象相关联,引用计数跟踪共有多少个类对象共享同一指针。std:auto_ptr 限制:1.std:auto_ptr 要求一个对象只能有一个拥有者。2.std:auto_ptr不能以传值的方式进行传递。3.其他智能指针的实现:1.每次创建类的新对象时,初始化指针并
2017-05-26 00:08:53 291
原创 二叉树的镜像
一、递归实现1.前序遍历每个节点2.如果遍历到的结点有子节点,就交换它的两个子结点3.交换完所有非子结点的左右结点之后,就得到镜像代码:
2017-05-17 23:03:27 266
原创 栈实现队列,队列实现栈
用两个栈实现队列和用两个队列实现一个栈题目:用两个栈实现一个队列。队列的生命如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。template class CQueue{public: CQueue(void); ~CQueue(void); void appendtail(co
2017-05-06 23:28:16 288
原创 管道
管道分为有名管道和无名管道1.无名管道(pipe)A.管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道B.只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);C.单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。
2017-05-03 22:51:16 354
转载 链表倒序输出
三种方式实现--从尾到头输出链表 方法一:借用栈倒序输出链表 方法二:先翻转链表,再顺序输出 方法三:递归实现,一个妙,两个字妙啊 方法一:借用栈倒序输出链表 因为栈是先进后出,把链表中的元素存进栈中,链表前面的元素在栈底,后面的元素在栈顶,链表后面的元素先出栈 方法二:先翻转链表,再按顺序打印(主要是想自己实现单链表的翻转,
2017-05-01 23:21:35 2214 1
More Effective C++(中文版)
2016-10-29
有谁能够帮忙理解一下这段代码
2017-04-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人