STL
文章平均质量分 83
japomica
这个作者很懒,什么都没留下…
展开
-
三十分钟掌握STL
三十分钟掌握STL这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽原创 2013-07-14 21:24:42 · 429 阅读 · 0 评论 -
STL sort源码剖析
STL sort源码剖析STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外负荷,就改用Insertion Sort。如果递归层次过深,还会改用Heap Sort。本文先分别介绍这个三个Sort,再整合分析STL sort算法(以上三种算法的综合) --Introspect原创 2013-07-14 21:31:04 · 563 阅读 · 0 评论 -
#include<algorithm>里的函数
#include里的函数#include 非修改性序列操作(12个) 循环对序列中的每个元素执行某操作for_each() 查找在序列中找出某个值的第一次出现的位置find() 在序列中找出符合某谓词的第一个元素find_if() 在序列中原创 2013-07-14 21:17:02 · 424 阅读 · 0 评论 -
STL源码剖析---STL容器特征总结(含迭代器失效)
转载别人的,很有价值~~~~查看原网页点击此处Vector1、内部数据结构:连续存储,例如数组。2、随机访问每个元素,所需要的时间为常量。3、在末尾增加或删除元素所需时间与元素数目无关,在中间或开头增加或删除元素所需时间随元素数目呈线性变化。4、可动态增加或减少元素,内存管理自动完成,但程序员可以使用reserve()成员函数来管理内存。5、迭代器失效插入:vect原创 2013-07-29 18:47:13 · 502 阅读 · 0 评论 -
STL源码剖析---list
灰常给力的STL源码剖析~查看原网页点击这里 相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。 list不仅是一个双向链表,而且还是一个环状双向链表。另外,还有一个重要性质,插入操作和接原创 2013-07-29 18:35:25 · 560 阅读 · 0 评论 -
STL容器学习总结
借用别人的东西,也是一种积累~~~ 本文主要讨论C++标准库中的顺序容器及相应的容器适配器,这些内容主要涉及顺序容器类型:vector、list、deque,顺序容器适配器类型:stack、queue、priority_queue。 标准库中的容器分为顺序容器和关联容器。顺序容器(sequential container)内的元素按其位置存储和访问,顾名思义,这些内部元素是顺原创 2013-07-29 19:35:05 · 447 阅读 · 0 评论 -
使用STL的next_permutation函数生成全排列(C++)
文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。 下午研究了一下全排列算法,然后发现C++的STL有一个函数可以方便地生成全排列,这就是next_permutation在C++ Reference中查看了一下next_permutation的函数声明:#include bool next_permutation转载 2013-07-31 08:23:17 · 774 阅读 · 1 评论 -
STL源码剖析---deque
值得一看!查看原网页点击这里 一、deque的中控器 deque是连续空间(至少逻辑上看来如此),连续线性空间总令我们联想到array或vector。array无法成长,vector虽可成长,却只能向尾端成长,而且其所谓的成长原是个假象,事实上是(1)另觅更大空间;(2)将原数据复制过去;(3)释放原空间三部曲。如果不是vector每次配置新空间时都有留下一些余裕,其成长原创 2013-07-29 18:39:43 · 630 阅读 · 0 评论 -
STL源码剖析---vector
某位大牛写的,很有学习价值~原址vector容器概述 vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内原创 2013-07-29 18:13:51 · 435 阅读 · 0 评论