STL代码笔记
文章平均质量分 78
爱吃肉的糖醋排骨
这个作者很懒,什么都没留下…
展开
-
前言
#include #include #include #includeusing namespace std; int main() { vector vInt; vInt.push_back(3); vInt.push_back(6); vInt.push_back(9); int a[3]={1,2,3}; vector:转载 2016-09-02 15:50:34 · 281 阅读 · 0 评论 -
变易算法
变易算法 C++ STL 的变易算法 (Mutating algorithms) 是一组能够修改容器元素数据的模板函数,可进行序列数据的复制、交换、替换、填充、移除、旋转、随机抖动和分割。这些算法对迭代器有较高的要求,具体的迭代器类型随各个算法而定,或前向迭代器、或双向迭代器、又或者是随机迭代器,以提供算法所需要的迭代器操作。应用变易算法时,先要检查容器的迭代器是否符合要求,防止产生转载 2016-09-03 17:12:31 · 625 阅读 · 0 评论 -
string 基本字符序列容器
string 基本字符序列容器 C语言并没有提供一个专门的字符串类型,需要通过字符数组,对字符串进行存储和处理。字符数组的末尾是一个值为 0 的 null 字符,表示字符串的结束。从而,一个用于存储 n 个字符的字符数组,字符个数为 n+1 。基于这样的字符数组,就可实现字符串的字符添加、删除、搜索、替换、连接和子串操作等。 在标准 C++ 中,字符串类 string 由转载 2016-09-03 17:00:21 · 602 阅读 · 0 评论 -
stack堆栈容器
stack堆栈容器 堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom)。堆栈的元素插入称为入栈,元素的删除称为出栈。由于元素的入栈和出栈总在栈顶进行,因此,堆栈是一个后进先出(Last In First Out)表,即 LIFO 表。 C++ STL 的堆栈泛化是直接通过现有的序列容器来实现的,默认转载 2016-09-03 16:59:30 · 320 阅读 · 0 评论 -
queue 队列容器
queue 队列容器 queue 队列也是一个线性存储表,与后进先出的堆栈不同,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出(First In First Out) 表。插入一端称为队尾,删除一端称为队首。 由于C++ STL 的队列泛化,默认使用双端队列 deque 来实现,因此,queue 也可看成一个容器的适配器,将 deque 容器转换为 qu转载 2016-09-03 16:59:06 · 418 阅读 · 0 评论 -
priority_queue 优先队列容器
priority_queue 优先队列容器 优先队列容器也是一种从一端入队,另一端出对的队列。不同于一般队列的是,队列中最大的元素总是位于队首位置,因此,元素的出对并非按照先进先出的要求,将最先入队的元素出对,而是将当前队列中的最大元素出对。 C++ STL 优先队列的泛化,底层默认采用 vector 向量容器,使得队列容器的元素可做数组操作,从而应用堆算法找出当前队列最大转载 2016-09-03 16:58:26 · 1617 阅读 · 0 评论 -
非变易算法
非变易算法 C++ STL 的非变易算法(Non-mutating algorithm)是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。作为算法函数参数的迭代器,一般为 Input Iterator 输入迭代器,具有 "++" 迭代和 "*" 访问操作。通过迭代器的元素遍历,可对迭代器区间所界定的元素进行操作。因此,非变易算法具有极为广泛的适转载 2016-09-03 16:57:40 · 409 阅读 · 0 评论 -
multimap
multimap 多重映照容器 multimap 与 map 一样,都是使用红黑树对记录型的元素数据,按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是 multimap 允许将具有重复键值的元素插入容器。在 multimap 容器中,元素的键值与元素的映照数据的映照关系,是多对多的,因此,multimap 称为多重映照容器。multimap 与 map 之间的多重特性转载 2016-09-02 22:20:48 · 438 阅读 · 0 评论 -
map
map映照容器 map映照容器所处理的元素数据,与数据库表的具有键值的记录非常相似,由一个键值和其他若干数据(映照数组)组成,键值和映照数据之间,可建立一个数学上的映照关系,由此而得映照容器的名称。容器的数据结构同样是采用红黑树进行管理,插入的元素键值不允许重复,所使用的节点元素的比较函数,只对元素的键值进行比较,元素的各项数据可通过键值检索出来。 map 映照容器是一种关转载 2016-09-02 22:19:51 · 256 阅读 · 0 评论 -
multiset
multiset 多重集合容器 与 set 集合容器一样, multiset 多重容器也使用红黑树组织元素数据,只是 multiset 容器允许将重复的元素键值插入,而 set 容器则不允许。multiset 容器实现了 Sorted Associativate Container 、Simple Associative Container 和 Multiple Associativ转载 2016-09-02 22:19:10 · 483 阅读 · 0 评论 -
set
set集合容器 set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据。每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。不会将重复的键值插入容器,也不需要指定具体的插入位置,而按元素在树中的关联关系,进转载 2016-09-02 22:18:18 · 278 阅读 · 0 评论 -
list
list 双向链表容器(双向循环链表的数据结构) list 是双向链表的一个泛化容器的容器,实现了 Reversible Container 、 Front Insertion Sequence 和 Back Insertion Sequence 等概念的接口规范。作为一种序列容器,它的数据元素可通过链表指针串接成逻辑上的线性表。 不同于采用线性表顺序存储结构的 vector转载 2016-09-02 22:16:34 · 273 阅读 · 0 评论 -
vector
vector 向量容器 作为数组的一个泛化推广的 vector 容器,不仅可以进行数组一样的元素随机访问,还可以在容器的尾端插入新元素,是一个实现了 Random Access Container 和 Back Insertion Sequence 概念的模型 vector 是一种简单、高效的容器。在尾端插入和删除元素,算法时间复杂度为 O(1) 常数阶,其他元素的插入转载 2016-09-02 22:10:23 · 294 阅读 · 0 评论 -
deque
deque 双端队列容器 deque 双端队列容器 ( double-ended queue ) 与 vector 非常相似,不仅可在尾部插入和删除元素,还可以在头部插入和删除,算法的时间复杂度也是常数阶 O(1),是一个实现了 Random access container 、Back insertion sequence 和 Front insertion sequence转载 2016-09-02 22:11:11 · 5346 阅读 · 0 评论 -
数值算法
数值算法 C++ STL 的数值算法(Numeric algorithms)是一组对容器元素进行数值计算的模板函数,包括容器元素求和 accumulate 、两序列元素的内积 inner_product 、容器元素的一系列部分元素和 partial_sum 、容器每对相邻元素的差。 1 /* 下面示例程序对数组 iArray={1, 2, 3, 4, 5转载 2016-09-03 17:13:28 · 432 阅读 · 0 评论