STL容器

一、容器类型

这些哈希容器都是基于哈希表实现的,提供了快速的平均时间复杂度的插入、删除和查找操作。它们通常比有序容器(如 std::set 和 std::map)在这些操作上更高效。哈希容器的元素顺序是不确定的,因为元素在容器中的存储顺序取决于哈希函数的计算结果。

二、容器常用的函数

这些成员函数能够对哈希容器进行插入、查找、删除等操作,以及提供了一些信息查询功能,帮助用户更灵活地使用哈希容器。

  • unordered_set: 无序集合,容器中的元素是唯一的,按照哈希值进行存储,具有常数时间复杂度的查找、插入和删除操作。

  • unordered_map: 无序映射,存储键-值对,按照键的哈希值进行存储,也具有常数时间复杂度的查找、插入和删除操作。

  • unordered_multiset: 无序多重集合,允许存储相同元素的集合,按照哈希值进行存储。

  • unordered_multimap: 无序多重映射,允许存储具有相同键的键-值对,按照键的哈希值进行存储。

  • insert(): 用于将元素插入到哈希容器中。对于单值的容器(set、map),insert() 方法返回一个 pair 类型,包含一个迭代器指向插入的元素及一个 bool 值,用于表示插入是否成功;对于多重容器(multiset、multimap),则直接返回迭代器。

  • find(): 在容器中查找指定的元素,返回指向该元素的迭代器,若未找到则返回尾后迭代器。

  • erase(): 从容器中删除一个或一段元素,可以传入元素或迭代器作为参数。

  • clear(): 清空容器中所有元素,使其变为空容器。

  • size(): 返回容器中元素的数量。

  • empty(): 检查容器是否为空,如果容器没有元素,则返回 true;否则返回 false。

  • begin() 和 end(): 返回指向容器第一个元素和尾后元素的迭代器,通常用于循环遍历容器中的元素。

  • bucket_count(): 返回当前哈希表中的桶数。

  • bucket_size(n): 返回第 n 个桶中存储的元素数。

  • load_factor(): 返回当前容器中元素的数量与桶数的平均比值。

  • rehash(): 重新散列容器,增加桶的数量以适应更多元素,可能会导致重新分配元素的操作。

  • reserve(): 设置容器最少可以容纳的元素数量,以提高插入元素时的性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值