
stl
NominationP
一切都是最好的安排
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vector
看完STL源码剖析也有2个月了吧,虽然看的时候明白了,但很快就忘了,Vector更是看过好几次了,但都没有记录下来。还是从开头开始吧,毕竟现在只是打地基,打地基,打地基~.~ vector是个动态空间(array是静态空间) 所以实现vector关键在于其对大小的控制以及重新配置时的数据移动效率 对于扩充空间(不论大多),是“配置新空间/ 数据移动 / 释还旧空间”的大工程,时间成本很高,所以空间配原创 2016-05-02 13:46:59 · 583 阅读 · 0 评论 -
空间配置器allocator
先解决一个坑 allocator在源码剖析的第二章,便是讲的allocator,(第一次看的时候一脸蒙B)因为所有的STL的操作对象都存放在容器内,而容器一定要配置空间以置放资料,都要用到allocatorSGI标准的空间适配器 std::allocator下面的代码,只是把C++的:::operator new 和 ::operator delete 做一层薄薄的包装,SGI 从未使用过它,也原创 2016-05-04 11:45:35 · 310 阅读 · 0 评论 -
List
相较于 vector 的连续线性空间,List 就显得复杂很多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此 list 对于空间的运用有绝对的精准。对于任何位置的元素插入或移除,永远是常数时间 list 的节点(node) list 本身和 list 的节点是不同的结构,需要分开设计 以下是 STL list 的节点(node)结构//是一个双向链表 template<cla原创 2016-05-04 21:28:40 · 463 阅读 · 0 评论 -
242. Valid Anagram
Given two strings s and t, write a function to determine if t is an anagram of s. 看一个数是不是另一个数的anagram anagram :组成元素相同,但顺序不同For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “c原创 2016-05-04 22:10:20 · 268 阅读 · 0 评论