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

2024-08-24 11:44:11 浏览数 (2)

  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

0 人点赞