在set中插入元素x,实际插入的是<x, x>构成的 键值对,

2024-08-24 11:41:18 浏览数 (3)

函数声明

功能介绍

pair<iterator,bool> insert ( const value_type& x )

在set中插入元素x,实际插入的是<x, x>构成的 键值对,如果插入成功,返回<该元素在set中的 位置,true>,如果插入失败,说明x在set中已经 存在,返回<x在set中的位置,false>

void erase ( iterator position )

删除set中position位置上的元素

size_type erase ( const key_type& x )

删除set中值为x的元素,返回删除的元素的个数

void erase ( iterator first, iterator last )

删除set中[first, last)区间中的元素

void swap ( set<Key,Compare,Allocator>& s );

交换两个set中的元素

void clear ( )

将set中的元素清空

iterator find ( const key_type& x ) const

返回set中值为x的元素的位置

size_type count ( const key_type& x ) const

返回set中值为x的元素的个数(set.count()只等于0或1)

map

描述

翻译:

  1. map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。
  2. 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同,并且在map的内部,key与value通过成员类型 value_type绑定在一起,为其取别名称为pair: typedef pairwww.laipuhuo.com <const key, T> value_type;
  3. 在内部,map中的元素总是按照键值key进行比较排序的。
  4. map中通过键值访问单个元素的速度通常比unordered_map容器慢,但map允许根据顺序对元素进行直接迭代(即对map中的元素进行迭代时,可以得到一个有序的序列)。
  5. map支持下标访问符,即在[]中放入key,就可以找到与key对应的value。
  6. map通常被实现为二叉搜索树(更准确的说:平衡二叉搜索树(红黑树))。

#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 www.laipuhuo.com (auto& e : s)

cout << e << " ";

cout << endl;

return 0;

template <class T1, class T2>

struct pair

{

typedef T1 first_type;

typedef T2 second_type;

T1 first;

T2 second;

pair(): first(T1(www.laipuhuo.com)), second(T2())

{}

pair(const T1& a, const T2& b): first(a), second(b)

{}

};

1 人点赞