multimap与map一样,都是使用红黑树对记录型的元素数据按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是multimap允许插入具有重复性键值的元素。
在multimap容器中,元素的键值与元素的映照数据的映照关系是多对多的,即multimap是多重映照容器。
由于元素键值允许重复,使得数组操作符“[]”利用键值来访问元素没有意义,故而multimap并没有定义数组方式的“[]...
分类:
其他好文 时间:
2015-07-11 10:39:01
阅读次数:
135
在二叉树中已经探讨过,如果按照随机顺序插入树节点,绝大多数都会出现不平衡的情况。最坏的情况,插入的数据时有序的,二叉树将会变成链表,插入、删除的效率将会严重地降低
下图就是按照数据升序的顺序插入二叉树的情况:
红黑树就是一种解决非平衡树的方法,它是增加了某些特点的二叉搜索树
为了能较快的时间来搜索一颗树,需要保证树总是平衡的(或者至少大部分是平衡的),就是说对树中的每个节点,它左...
分类:
其他好文 时间:
2015-07-10 11:32:41
阅读次数:
197
3Sum题目描述:给定一个整数数组,找出其中的三个数之和为0的所有组合(排除相同的组合)。分析:利用TwoSum 中两指针的思路,我们可以先将数组排序。要找到3个数之和为0,我们可以先固定一个数num[i],将i+1和len-1分别作为头指针和尾指针,当num[i]、num[i+1]与num[len...
分类:
其他好文 时间:
2015-07-09 00:30:56
阅读次数:
122
C++ STL set和multiset1,set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就像一个集合一样。所有的操作的都是严格在logn时间之内完成,效率非常高。set和multiset的区别是:set插入的元素不能相同,但是multiset可以相同。...
分类:
其他好文 时间:
2015-07-08 20:42:39
阅读次数:
125
List简介
list是一个双向链表容器,可高效地进行插入删除元素。
list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err)
#include
list对象的默认构造
list采用采用模板类实现,对象的默认构造形式:list lstT; 如:
list lstInt; //定义一个存放int的list容器。
list lstF...
分类:
其他好文 时间:
2015-07-08 16:32:31
阅读次数:
135
题目:给定单项链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。解析:
删除单向链表中的一个节点,常规做法是必须找到待删除节点的前一个节点才能实现,而这样做的时间复杂度是O(n),无法满足要求。
创新想法:当我们想删除一个节点时,并不一定要删除节点本身,可以用当前节点保存它下一节点的值,然后删除它的下一个节点。情况案例:
1. 输入节点为NULL
2. 单链表只有一个节点,即...
分类:
其他好文 时间:
2015-07-06 16:03:01
阅读次数:
99
String和StringBuffer类区别1.String 是定长的例如:String s1="abc";s1="egf";StringBuffer类:是变成字符串,因为它具有(buffer)缓冲区:StringBuffer类表示的字符串,其内容与长度随时动态可变,可直接对串自身进行插入、删除、修...
分类:
其他好文 时间:
2015-07-04 09:32:10
阅读次数:
111
不同于采用线性表顺序存储结构的vector和deque容器,list双向链表中任一位置的元素差值、插入和删除,都具有高效的常数阶算法时间复杂度O(1)。
头文件
#include
创建list对象
1)list();//创建一个没有任何元素的list对象。
listl 2)list(size_type n);//创建一个具有n个元素的list对象,每个元素采用它的类型下的默认值。
li...
分类:
编程语言 时间:
2015-07-03 17:32:46
阅读次数:
172
deque与vector非常相似,不仅可以在尾部插入和删除元素,还可以在头部插入和删除。不过当考虑到容器元素的内存分配策略和操作性能时,deque相对vector较为有优势。
头文件
#include
创建deque对象
1)deque();//创建一个没有任何元素的deque对象。
deque d
2)deque(size_typen);//创建一个具有n个元素的deque对象,每个...
分类:
编程语言 时间:
2015-07-03 10:37:31
阅读次数:
206
这里主要是对vector容器的一些常见应用的总结。至于vector的构造函数及初始化可以参考http://blog.csdn.net/lsh_2013/article/details/21191289,这里不再赘述。
元素的遍历
用迭代器访问vector元素
#include
#include
using namespace std;
int main(void)
{
vector v...
分类:
其他好文 时间:
2015-07-02 22:36:12
阅读次数:
549