前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >multiset中再底层中存储的是<value, value>的键值对

multiset中再底层中存储的是<value, value>的键值对

原创
作者头像
用户7737280
发布2024-08-24 11:44:11
690
发布2024-08-24 11:44:11
  1. tltiset的插入接口中只需要插入即可
  2. 与set的区别是,multiset中的元素可以重复,set是中value是唯一的
  3. 使用迭代器对multiset中的元素进行遍历,可以得到有序的序列
  4. multiset中的元素不能修改
  5. 在multiset中找某个元素,时间复杂度为$O(log_2 N)$
  6. multiset的作用:可以对元素进行排序

#include <set>

void TestSet()

{

 int array[] = { 2, 1, 3, 9, 6, 0, 5, 8, 4, 7 };

// 注意:multiset在底层实际存储的是<int, int>的键值对

multiset<int> s(array, array + sizeof(array)/sizeof(array[0]));

for (auto& e : s)

cout << e << " ";

cout << endl;

return 0;

}

  1. Multimaps是关联式容器,它按照特定的顺序,存储由key和value映射成的键值对<key, value>,其中多个键值对之间的key是可以重复的。
  2. 在multimap中,通常按照key排序和惟一地标识元素,而映射的value存储与key关联的内 容。key和value的类型可能不同,通过multimap内部的成员类型value_type组合在一起, value_type是组合key和value的键值对: typedef pair<const Key, T> value_type;
  3. 在内部,multimap中的元素总是通过其内部比较对象,按照指定的特定严格弱排序标准对 key进行排序的。
  4. multimap通过key访问单个元素的速度通常比unordered_multimap容器慢,但是使用迭代 器直接遍历multimap中的元素可以得到关于key有序的序列。
  5. multimap在底层用二叉搜索树(红黑树)来实现。

multimap和map的唯一不同就是:map中的key是唯一的,而multimap中key是可以重复的。 multimap中的接口可以参考map,功能都是类似的。

注意:

  1. multimap中的key是可以重复的。
  2. m www.laipuhuo.com ultimap中的元素默认将key按照小于来比较
  3. multimap中没有重载operator[]操作,(因为key-value不再是唯一)
  4. 使用时与map包含的头文件相同:

key_type

Key

value_type

Key

key_compare

Compare

value_compare

Compare

set中只有key,所以value_type也是key;同理value_compare等于key_compare Alloc:set中元素空间的管理方式,使用STL提供的空间配置器管理

基本构造函数

函数声明

功能介绍

set (const Compare& comp = Compare(), const Allocator& = Allocator() );

构造空的set

set (InputIterator first, InputIterator last, const Compare& comp = Compare(), const Allocator&= Allocator(www.laipuhuo.com) );

用[first, last)区间中的元素构造 set

set ( const set<Key,Compare,Allocator>& x);

set的拷贝构造

...

set的迭代器

函数声明

功能介绍

iterator begin()

返回set中起始位置元素的迭代器

iterator end()

返回set中最后一个元素后面的迭代器

const_iterator cbegin() const

返回set中起始位置元素的const迭代器

const_iterator cend() const

返回set中最后一个元素后面的const迭代器

reverse_iterator rbegin()

返回set第一个元素的反向迭代器,即end

reverse_www.laipuhuo.com iterator rend()

返回set最后一个元素下一个位置的反向迭代器,即rbegin

const_reverse_iterator crbegin() const

返回set第一个元素的反向const迭代器,即cend

const_reverse_iterator crend() const

返回set最后一个元素下一个位置的反向const迭代器,即crbegin

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档