自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小小宁波很靠谱

哦是吗有意思三连

  • 博客(6)
  • 收藏
  • 关注

原创 【STL源码剖析】deque!!!

面试网易的时候特么问我deque,从来没用过啊(委屈脸)。 deque:双端队列,它是动态地以分段连续空间组合而成的,随时可以增加一段新的空间并链接起来。 deque和vector的区别: deque允许于常数时间内对头端进行元素的插入和移除操作。 deque没有capacity观念。 deque没有像vector那样“因旧空间不足而重新配置一块更大的空间,然后复制元素,再释放旧空间”。...

2019-04-25 20:23:08 251

原创 【STL源码剖析】list!!!

list和vector是两个最常被使用的容器。相较于vector的连续线性空间,list就显得复杂许多,它的好处就是每次插入或删除一个元素,就配置或释放一个元素空间。而且对于任何位置的元素插入或元素移除,list永远是常数时间。 list是一个双向链表,STL的list节点结构: template <class T> struct __list_node { typede...

2019-04-25 14:42:25 140

原创 【STL源码剖析】vector!!!

STL中我们使用的最多的就是容器了,容器根据数据在容器中的排列特性,分为序列式容器和关联式容器两种。 序列式容器中,我用的最多的可能就是vector了吧,这章就具体讲讲vector,到底能挖多深。 array是静态空间,一旦配置了就不能改变,要换个大点(或小点)的房子,一切都要由客端自己来。 vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素,所以相较...

2019-04-25 14:10:10 111

原创 【STL源码剖析】迭代器

STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再以一帖胶着剂将它们撮合在一起。容器和算法的泛型化,用class templates和function templates就可以分别达成目标。 迭代器是一种智能指针。 为了获得迭代器所指对象的型别,一种是利用了function template的参数推导机制。例子如下: template <class I,class T&...

2019-04-24 11:15:32 180

原创 【STL源码剖析】空间配置器

腾讯二面:聊聊STL的空间配置器。 我:?????然后开始聊vector动态扩容,/(ㄒoㄒ)/~~ SGI STL的配置器与众不同,名称是alloc而非allocator。标准的allocator只是对操作符new和delete的一层薄薄的封装,并没有考虑到任何效率上的优化。 一般而言,我们习惯的C++内存配置操作和释放操作是这样的: class Foo {...}; Foo *pf=...

2019-04-22 22:49:34 211

原创 【STL源码剖析】开篇

第一次,面试官:用过STL库吗? 我:??? 面试官:就是vector之类地。 我(挠头):哦~~用过用过,还有栈啊,堆啊(wrong answer)。。。 面试官心想:这孩子可以回家等消息了 第二次,面试官:用过STL库吗? 我(语气坚定):嗯嗯! 面试官:看过STL源码吗,知道deque底层实现吗? 我:???我还是回去等消息吧。 写这篇博文,是因为实在懒得手写了...

2019-04-22 19:12:27 192

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除