c++标准库
逗逗军001
c/c++
展开
-
c++标准模板库简介
STL组件(1)容器: 用来管理某类对象的集合。每类对象都有其优缺点。 (2)迭代器: 用来在一个对象集合中遍历元素。这个对象或许是个容器集合,或许是个集合,或者是容器的一部分。 (3)算法: 用来处理集合内的元素。出于不同得目的而查找、排序、修改、使用元素。 STL的一个根本特性是 针对任何类型运作,是泛型编程的典范。容器容器用来管理一大群元素。 1.序列式容器, 这是一种有序的集合原创 2017-05-23 00:23:20 · 522 阅读 · 0 评论 -
序列式容器
1.Vectorvector就是一个dynamic array中管理。它允许随机访问,你可以利用索引直接访问任何一个元素。在array尾部附加元素或移除元素都很快速。但插入元素就比较费时。以下定义一个vector,插入六个元素,并打印:vector<int> coll; //定义一个vector for (int i = 1; i < +6; i++) { coll.原创 2017-05-24 00:01:23 · 426 阅读 · 0 评论 -
关联式容器
简介关联式容器通常由二叉树实现出来。而且每个节点都有一个父节点和两个子节点;左子树的所有元素都比自己小,右子树的所有元素都比自己大。关联式容器主要差别在于元素的种类以及处理重复元素时的方式。优势是快速查出某特定value的值,具备对数复杂度,劣势是不能直接改变value的值,那会破坏元素的自动排序。Set元素依据其value自动排序,每个元素出现一次,不重复。Multiset和set的唯一差别是:元原创 2017-05-27 23:10:03 · 376 阅读 · 0 评论 -
无序容器
简介:无序容器常以hash table实现出来,内部是个由 linkedlist组成的 array 通过某个hash函数运算,确定元素落在这个array的位置。hash函数的运算目标是:让每个元素的落点有助于用户快速访问任何一个元素,无序容器分类:一般有一下无序容器 (1)Unordered set 无序元素的集合,不允许元素重复。 (2)Unordered multiset 可能包含相同vl原创 2017-05-27 23:20:18 · 346 阅读 · 0 评论 -
迭代器
概念以一个对象表现出容器元素的位置。实践这个概念的对象就是所谓的迭代器。迭代器是一个可遍历STL所有元素的对象。 Opreator *:返回当前位置上的元素值。如果该元素拥有成员,可以通过迭代器以操作符->取用他们Operator ++: 另迭代器前进至下一元素。大多数迭代器还可使用Operator–退至前一元素。 Operator ==和!=: 判断两个迭代器是否指向同一个位置。 Opera原创 2017-05-30 09:24:52 · 421 阅读 · 0 评论 -
STL算法
1.简介:为了处理容器内的元素,STL提供了一些标准算法,包括排序,查找,拷贝,重新排序,修改,数值运算。 算法非容器类的成员函数,而是一种搭配迭代器的全局函数。一些基本操作:#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ vector<int> coll =原创 2017-05-30 20:12:45 · 427 阅读 · 0 评论 -
c开源小项目
开源世界有许多优秀的开源项目,我选取其中十个最优秀的、最轻量级的C语言的项目,希望可以为c语言开发人员提供参考。1. WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到60转载 2017-06-27 15:26:03 · 1810 阅读 · 0 评论 -
STL容器 set、 multiset、map、multimap
Set和Multiset 会根据特定的排序准则,自动将元素排序。两者不同之处是multiset允许元素重复而set不允许。set、 multiset的能力set和multiset通常以平衡二叉树完成,自动排序的优点在于令二叉树查找元素时拥有对数的性能。 另外自动排序造成set、multiset有个重要的限制:不能改变元素值。set、 multiset的操作函数c.count(val);//返回元素原创 2017-08-12 11:08:48 · 349 阅读 · 0 评论