28、集合操作:无序集合与多重无序集合的使用指南

集合操作:无序集合与多重无序集合的使用指南

在编程中,集合是一种非常有用的数据结构,它可以帮助我们高效地存储和操作数据。本文将详细介绍无序集合( unordered_set )和多重无序集合( unordered_multiset )的使用方法,包括元素的插入、检索、删除,以及桶列表的生成等操作。

1. 无序集合基础

无序集合中的元素是成对的对象,每个对象由两个字符串表示一个人的名字(名和姓)。由于默认的哈希函数模板 hash<T> 没有针对 pair<string, string> 的特化,因此需要自定义一个函数对象来对元素进行哈希处理。

class Hash_pair
{
public:
  size_t operator()(const std::pair<string, string>& pr)
  {
    return std::hash<string>()(pr.first + pr.second);
  }
};

这个函数对象使用 hash<string> pair 对象的两个成员拼接后的字符串进行哈希处理,并返回哈希值。

2. 元素检索

在无序集合中检索元素可以使用 find() 函数,它返回一个迭代器,指向哈希值与参数匹配的元素,如果元素不存在,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值