
STL
文章平均质量分 87
LinuxG_G
90年程序员,坐标深圳某IT公司。对新技术充满兴趣,使用的编程语言:C/C++,python, Linux shell;
熟悉常见数据结构及算法,Linux编程,了解java,Android开发。
技能库:
STL, python, 多线程编程, TCP/IP, Linux shell
java, android, 数据库
爱好运动,兴趣比较广泛:basketball,badminton,swim,running等
博客主要用Github 及 csdn,欢迎交流。
联系方式:qq 754860961
展开
-
仿函数functor和function adapters
所谓的functor就是使用起来像函数一样的东西,如果你针对某个class进行operator() 【function call操作符】重载,它就成为一个仿函数,至于要成为一个可配接的仿函数,还需要做一些额外的努力。使functor具备配接能力 为了拥有配接能力,每一个仿函数都必须定义自己的相应型别,就像迭代器如果要融入整个STL大家庭,也必须依照规定定义自己的5个相应型别原创 2016-03-22 23:14:50 · 793 阅读 · 0 评论 -
stl之空间配置器Allocator
alloc作为stl容器的空间分配器,主要负责空间的分配allocate和释放deallocate。下面先了解下对象的构造过程: 对于: classFoo{ … }; Foo*ptr = new Foo;原创 2016-03-13 17:03:21 · 667 阅读 · 0 评论 -
stl之迭代器(iterator)
迭代器是一种抽象的设计概念,在Gof的《design Patterns》书中提供了迭代器模式,定义如下:提供一种方法,使之能够依序遍历某个容器内的所有元素,但又无需暴露该聚合物的内部表述方式。 在stl中,迭代器充当着容器(containers)和算法(algorithms)的粘合剂,所以了解迭代器十分重要。其源码实现对应于stl_iterator_base.h原创 2016-03-13 17:49:30 · 465 阅读 · 0 评论 -
stl之序列容器——vector
vector内部维护了start,finish,end_of_storage三个迭代器,分别表示目前使用空间的头、尾及目前可用空间的尾。当空间不够使用时,会动态增长。一些常用的元素操作方法如下:front //第一个元素back //最后一个元素push_back //将一个元素插入vector尾部insert //指定位置插入pop_back //原创 2016-03-13 19:37:09 · 491 阅读 · 0 评论 -
stl之序列容器——deque
相比于vector,deque是一种双向开口的连续线性空间,可以在头尾两端分别做元素的插入和删除操作。这也决定了其更赋值的容器结构。 deque内部维护了start和finish 节点,用于双端的插入和删除;map,一块连续空间,其每个元素都是个指针,指向一个节点。其指向的节点中有四个元素:cur、first、last用于维护缓冲区的头尾和当前元素(分头和尾情况),还有node原创 2016-03-13 20:19:34 · 511 阅读 · 0 评论 -
stl之适配器容器——stack, queue, priority_queue
stack stl实现stack的方法:以某种既有容器作为底部结构,将其接口改变,使之符合“先进后出”的特性,形成一个stack。这种“修改某物接口,形成另一种风貌”的方式,成为adapter(适配器),在设计模式中又叫adapter模式,因此,stack被归类为container adapter。其方法包括:empty, size, top, push, pop.原创 2016-03-13 20:23:16 · 689 阅读 · 0 评论 -
stl之关联容器——set,map,hashtable
关联容器 每笔数据都是一个键值对(key-value-pair)。当元素被插入到关联式容器中时,容器内部结构便依照其键值大小,以某种特定规则将这个元素放置于适当位置。关联容器没有所谓的头尾,所以不会有所谓的push_back()、push_front()、pop_back()、pop_front()这种操作行为。set 与multiset其底层实现结构为RB-tree。原创 2016-03-13 20:34:36 · 719 阅读 · 0 评论