STL中算法
摘要:sort 大数据量时,采用Quick Sort,分段递归排序; 小数据量时,采用Insert Sort。 如果迭代层次过深,会导致快排性能退化,这时采用Heap Sort排序。 快排pivot采用三点中值法,去整个序列的头尾中央三个元素,以其中值作为pivot 如果希望sort降序排序,引入头文件#
阅读全文
posted @
2016-09-05 14:48
已停更
阅读(235)
推荐(0) 编辑
STL容器读书笔记
摘要:vector vector维护的是一个连续线性空间 vector是动态空间,随着元素的加入会自动扩容,扩充至当前size的两倍,然后将原内容拷贝,开始在原内容之后构造新元素,并释放空间 vector提供的迭代器是 random access iterators 随机访问迭代器,vector迭代器是普
阅读全文
posted @
2016-09-04 21:48
已停更
阅读(359)
推荐(0) 编辑
迭代器
摘要:STL的中心思想在于:将容器和算法分开,彼此独立设计,再将他们撮合在一起,迭代器就是这个作用 迭代器是一种smart pointer 迭代器最重要的编程工作就是对operator*和operator->进行重载 迭代器 迭代器 迭代器分类: 迭代器分类: 输入迭代器,只读不写,只增,Istream
阅读全文
posted @
2016-09-04 15:46
已停更
阅读(186)
推荐(0) 编辑
《STL源码剖析》相关面试题总结
摘要:一、STL简介 STL提供六大组件,彼此可以组合套用: 二、关于容器的一些问题 2.1 当vector的内存用完了,它是如何动态扩展内存的?它是怎么释放内存的?用clear可以释放掉内存吗?是不是线程安全的? 2.2 map是怎么实现的?查找的复杂度是多少?能不能边遍历边插入? 红黑树和散列 O(l
阅读全文
posted @
2016-08-29 10:57
已停更
阅读(13238)
推荐(1) 编辑
.size和.empty
摘要:坑爹的list容器size方法--为了splice居然把复杂度设计为O(N)? 能用empty的时候,不要用size empty可以保证常量复杂度,但list的size不保证 链表长度必须要遍历全部的链表元素才能获得,而不是用一个变量来表示 list size调用distance,distance内
阅读全文
posted @
2016-08-25 19:36
已停更
阅读(660)
推荐(0) 编辑
常用函数实现
摘要:求最大公约数 交换swap 求某个区间随机数 分割数组Partition 分解质因数(面试题考过) 不用加号计算两数和 strcpy 二分查找
阅读全文
posted @
2016-08-24 19:18
已停更
阅读(262)
推荐(0) 编辑
C++中memcpy和memmove
摘要:二者都是内存拷贝 memcpy内存拷贝,没有问题;memmove,内存移动?错,如果这样理解的话,那么这篇文章你就必须要好好看看了,memmove还是内存拷贝。那么既然memcpy和memmove二者都是内存拷贝,那二者究竟有什么区别呢? 区别 memcpy 实现代码,注意以下几点: 1.确定函数原
阅读全文
posted @
2016-08-24 14:45
已停更
阅读(901)
推荐(0) 编辑