码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 多重集的使用

时间:2015-06-09 19:07:30      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

C++ 多重集的使用

多重集当中的数据映射关系将不是前面的一对一的关系,而是一对多,也就是可以在容器当中插入具有相同key的实例。关于组织方式,LZ进行了下面的大胆的预测。

第一、底层的数据组织方式如果是红黑树,那么就会将具有相同key的数据连续存放,也就是在红黑树的中序遍历中他们是挨着的。

第二、如果是使用hash函数,我猜测是使用了另外一种容器,将他们放到了一个链表当中,因为他们简直相同,无需对key进行排序,这里唯一有价值的是时间信息,因此使用链表足矣。

这里的多重集包括了multimapmultisetunordered_multimap,unordered_multiset

 具体的一些用法总结如下。

1、insert

insert操作和前面的map,set没有多大区别,只是这里允许插入相同的键值

2、delete

multimap<string,string> students;
multimap.insert(make_pair("xiaoming","PKU"));
multimap.insert(make_pair("xiaoming","THU"));
multimap<string,string>::size_type cnt=students.erase("xiaoming");

上述代码返回删除的相同键值的元素的个数

3、查找

由于存在重复,因此需要应对重复的情形。同样以multimap为例

3.1传统的方法

 

C++ 多重集的使用

标签:

原文地址:http://www.cnblogs.com/lightblueme/p/4563954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!