关联式容器--树形结构(map&set)

关联式容器

什么是关联式容器:
关联式容器也是用来存储数据的,与序列式容器(vector, list, deque…)不同的是,关联式容器是通过key来存储和读取元素的,在数据检索时比序列式容器效率更高
键值对:
用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值, value表示与key对应的信息, 这类似于字典中的一一对应关系.
实现构造键值对pair(粗略的实现, 主要是看整体结构):

#pragma once    
namespace sock {
       
  template<class T1, class T2>    
    struct pair {
       
      T1 first;    
      T2 second;    
      pair() : first(T1()), second(T2()) {
   }    
      pair(const T1& f, const T2& s)    
        : first(f), second(s) {
   }                                                                                
    };    
}    

树形关联式容器

树型结构的关联式 容器主要有四种:map、set、multimap、multiset。这四种容器的共同点是:使用平衡搜索树(即红黑树) 作为其底层结果,容器中的元素是一个有序的序列。
set:
set的特性:
1.set的底层是红黑树, 按照一定次序来存储
2.其元素为key, 不允许修改, 并且是唯一的
3.默认中序遍历二叉搜索树, 结果为升序

set的简单使用:
key的唯一性:

int main() {
       
  set<int> s;    
  s.insert(9);    
  s.insert(5);    
  s.insert(2);    
  s.insert(5);    
  s.insert(7);    
  set<int>::iterator sit = s.begin();    
  while (sit != s.end()) {
       
    cout << *sit << " ";    
    ++sit;    
  }    
  cout << endl;                                                                                                 
  return 0;    
}    

在这里插入图片描述
移除key对应的结点:

int main() {
       
  set<int> s;    
  s.insert(9);    
  s.insert(5);    
  s.insert(2);    
  s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值