C++初学者指南-5.标准库(第一部分)--标准关联容器

C++初学者指南-5.标准库(第一部分)–标准关联容器

快速概览

集合

有序集合哈希集合
#include #include <unordered_set>
在这里插入图片描述在这里插入图片描述

set / unordered_set
唯一可排序/可哈希的键
在这里插入图片描述

multiset / unordered_multiset
可能存在多个等效的键
在这里插入图片描述

键值对映射

有序键值对映射哈希键值对映射
#include #include <unordered_map>
在这里插入图片描述在这里插入图片描述

映射Maps存储的是std::pair<Key const, Value>
标准库中的关联容器是基于通过指针连接的节点构建的。每个节点存储一个键值对。
std::pair<First,Second> 包含两个不同或相同类型的数值。

#include <utility>
std::pair<int,double> p {4, 8.15};
cout << p.first  <<'\n';   // 4
cout << p.second <<'\n';   // 8.15
// C++17 features:
std::pair p2 {4, 8.15};  // std::pair<int,double>
auto [fst,snd] = p2;    // structured binding
cout << fst <<" "<< snd <<'\n';  // 4 8.15

map<Key,Value> / unordered_map<Key,Value>
唯一可排序/可哈希的键
在这里插入图片描述
multimap<Key,Value> / unordered_multimap<Key,Value>
可能存在多个等效的键
在这里插入图片描述

标准集合和映射是基于节点的

键或键-值对存储在通过指针连接的节点中。
有序集合/映射
通常实现为平衡二叉树
在这里插入图片描述
无序集合/映射
用哈希表实现
在这里插入图片描述

接口:如何使用

备忘录

关联式容器

在这里插入图片描述

std::set<KeyType,Compare>

在这里插入图片描述

std::map<KeyType,MappedType,KeyCompare>

在这里插入图片描述

std::unordered_set<KeyT,Hash,KeyEqual>

在这里插入图片描述

std::unordered_map<KeyT,MappedT,Hash,KeyEqual>

在这里插入图片描述

相关内容

cppreference: 容器库
cppreference: std::set
cppreference: std::map
cppreference: std::unordered_set
cppreference: std::unordered_map
C++漫游:容器和算法
5分钟介绍5种数据结构(by Conor Hoekstra)
关联容器的7个便利函数示例
关联式容器总览表

附上原文链接
如果文章对您有用,请随手点个赞,谢谢!^_^

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值