【C++ STL】
文章平均质量分 91
小田
无人扶我青云志,我自踏雪向山巅。倘若命中无此运,孤身亦可登昆仑。他朝若有翻身时,生吃黄莲也叫甜。
展开
-
【C++ STL】细数C++ STL 的那些事---List(双向链表)
一,概述 List将元素按顺序储存在链表中. 与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。 list 不仅是一个双向链表,而且是一个环状双向链表二,使用 #include using namespace std; 注意:list是一个“前闭后开”的区间,即原创 2012-04-08 23:18:16 · 9103 阅读 · 2 评论 -
【C++ STL】深入解析神秘的 --- 仿函数
一,概述 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 有些功能的的代码,会在不同的成员函数中用到,想复用这些代码。 1)公共的函数,可以,这是一个解决方法,不过函数用到的一些变量,就可能成为公共的全局变量,原创 2012-06-24 21:36:15 · 39486 阅读 · 3 评论 -
【C++ STL】算法 <algorithm>中各种算法解析
一,巡防算法 for_each(容器起始地址,容器结束地址,要执行的方法)#include #include #include using namespace std;templatestruct plus2{ void operator()(T&x)const { x+=2; } };void printElem(int& el原创 2012-06-23 22:53:20 · 38163 阅读 · 3 评论 -
【C++ STL】细数C++ STL 的那些事---set(元素唯一,且排序)
1)Set是一种关联容器,它用于存储数据,并且能从一个数据集合中取出数据。它的每个元素的值必须唯一,而且系统会根据该值来自动将数据排序。每个元素的值不能直接被改变。 【重点】内部结构采用红黑树的平衡二叉树 multiset 跟set 类似,唯一的区别是允许键值重复!!! 2)使用 需加载原创 2012-05-24 23:30:50 · 14122 阅读 · 0 评论 -
【C++ STL】细数C++ STL 的那些事---map容器
MAP容器 1)概念:map 是一个容器,它用于储存数据并且能从一个数据集合中取出数据。它的数据组成包含两项,一个是它的数据值,一个是用于排序的关键字。其中关键字是惟一的,它用于将数据自动排序。而每个元素的数据值与关键字无关,可以直接改变。 【重点】内部结构采用RB_TREE(红黑树)。查找复杂度:O(log2N)原创 2012-05-21 14:55:56 · 3515 阅读 · 0 评论 -
【C/C++】标准C语言头文件
标准C语言头文件ISO C标准定义的头文件(24项) 验证程序断言 支持复数算术运算 字符类型 出错码 浮点环境 浮点常量 整型格式转换 替代关系操作符宏 实现常量转载 2012-06-11 16:26:18 · 2718 阅读 · 0 评论 -
【C++ STL】细数C++ STL 的那些事 -- priority_queue(优先队列)
一,概述 priority_queue是拥有权值观念的queue,它允许加入新元素,移除旧元素。调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。但它是一个queue所以只允许在底端加入元素,在顶端移除元素。 排序:按照权值大小顺序排序,而不是按照push 进去的顺序排序。原创 2012-06-11 16:02:39 · 3997 阅读 · 0 评论 -
【C++ STL】细数C++ STL 的那些事 -- queue(队列)
一,概述 先进先出的数据结构,底端加入元素,顶端移除元素,类似stack同样不能有遍历行为,没有迭代器。也是以既有容器为底端容器被归类为陪接器(container adapter),默认底端容器为deque。二,使用 #include using namespace std;三,方法queue::push( );原创 2012-06-11 14:50:12 · 3698 阅读 · 0 评论 -
【C++ STL】细数C++ STL 的那些事---vector (动态数组)
一,vector概述 vector是一个顺序容器,可以存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 vector是动态空间,随着元素的增加内部机制可以自行扩充空间,而array则是固定大小空间,如果想增加空间,需要再重新申请空间,然后将原来元素拷贝到新空间中。 【注意】vector动态增加大小,原创 2012-06-11 10:49:24 · 3956 阅读 · 0 评论 -
【C++ STL】细数C++ STL 的那些事 -- stack(栈)
1)Stack是一种关联容器,是通过简单地修饰线性类deque的接口而获得的另一种“容器类”,往往被归结为配接器(adapter)而不是容器(container)。 stack不能遍历,所以没有迭代器!!! 底层容器除了 deque外还可采用 list。原创 2012-06-01 09:43:59 · 13696 阅读 · 3 评论 -
【C++ STL】细数C++ STL 的那些事 -- deque(双端队列)
1)概述 deque 是顺序性容器,是一种双向开口的连续线性空间。可以在头尾分别做元素的的安插和删除操作;vector当然也可以在头尾两端做动作,但是其头部动作效率奇差。deque和vector最大的差异在于:deque允许在常数时间内对两端进行元素的插入或删除操作;deque没有所谓容量的概念,因为它是以分段的连续空间组合而成,随时可以增加一段空间拼接起来,不存在像vecto原创 2012-06-01 14:41:08 · 2960 阅读 · 1 评论