
STL
已删除ddd
做一个简单,明亮,快乐的手艺人。
展开
-
Predicates 判断式
算法中有一种特殊的辅助函数叫做predicates(判断式)。所谓predicates,就是返回值为bool的函数。它们通常被用来指定排序准则和搜寻准则。Predicates可能有一个或者是两个操作数,视具体情况而定。注意,并非任何返回布尔值的一元函数或二元函数就是合法的predicate。STL要求,面对相同的值,predicates必须得出相同的结果。这些戒律将那些“被调用时,会改变自己的内部原创 2015-10-31 15:14:41 · 8981 阅读 · 0 评论 -
Vectors(一:大小和容量)
从这篇文章开始,依次详解各个组件,自然是从容器开始说起。 vector将元素复制到内部的dynamic array中,元素之间总是存在某种顺序,所以vectors是一种有序群集(ordered collection)。vector支持随机存取,因此只要知道位置,你可以在常数时间内存取任何一个元素。vector的迭代器是随机存取迭代器,所以STL的任何算法都可以奏效。大小(Size)和容量(Ca原创 2017-01-19 10:03:54 · 1457 阅读 · 0 评论 -
Vectors(二 操作函数)
拷贝、构造和析构非变动性操作赋值元素存取迭代器相关函数安插、移除相关操作原创 2017-01-19 15:05:11 · 412 阅读 · 0 评论 -
STL笔记介绍
STL组件介绍关于STL前世今生之类的介绍就不多说了,网上很多,没事就去看看,挺没趣的。我尽量表达的言简意赅,方便自己和能看到这篇文章的朋友理解,此文中大量引用,不要见怪。STL(Standard Template Library)是C++标准程序库的核心,若干组件共同合作构成了STL的基础。 其 最关键的组件是 1 容器, 2 迭代器 , 3 算法 除此之外还有 4 仿函数(functors)原创 2017-01-18 21:57:35 · 347 阅读 · 0 评论 -
Deques
deque同样是采用动态数组来管理元素,提供随机存取,并有着和vector几乎相同的接口。不同之处在于deque的动态数组头尾都开放,因此在头尾两端均能快速进行快速安插和删除。Deques VS Vectors不同点Deque两端都能进行快速安插和移除元素,均能在常数时间内完成。存取元素时,deque的内部结构会多一个间接过程,所以元素的存取和迭代器的动作会稍慢与vector。迭代器不需要再不原创 2017-01-19 15:54:42 · 810 阅读 · 0 评论 -
Lists
Lists使用一个doubly linded list(双向链表)来管理元素,决定了list的内部结构和vector与deque迥然不同,所以先在几个主要方面与前述二者存在明显的区别。根据链表的性质,list不支持随机存取,意思是如果你想存取第i位置上的元素就必须顺着链表访问到i位置。任何位置上的插入删除操作都能在常数时间内完成,毕竟无需移动任何元素只通过内部的一些指针操作即可。安插和删除动作原创 2017-01-19 17:21:23 · 314 阅读 · 0 评论