◐ Shell
clean mode source ↗

std::hive - cppreference.com

来自cppreference.com

在标头 <hive> 定义

template<
    class T,
    class Allocator = std::allocator<T>
> class hive;
(1) (C++26 起)
namespace pmr {
    template<class T>
    using hive = std::hive<T, std::pmr::polymorphic_allocator<T>>;
}
(2) (C++26 起)

1) std::hive 是一个序列容器,提供常数时间的插入和擦除操作。

2) std::pmr::hive 是一个使用多态分配器的别名模板。

蜂巢会在多个内存块(称为元素块)中自动管理存储。插入位置是未指明的,因而容器可以重用已擦除元素的内存位置。

当活动块(包含元素的元素块)变空时,它们会要么被解分配,要么成为预留块

预留块在被用于存储元素时成为活动块。用户可以通过调用 reserve() 来创建额外的预留块。

擦除和迭代都具有常数时间复杂度。

各活动块的容量按照由实现定义的增长因子(例如 1.69)增长。用户和实现都可以对元素块的最小和最大元素容量设置限制。

std::hive 满足容器 (Container) 的要求,但运算符 {{tt|1===} 和 != 除外。std::hive 也满足可逆容器 (ReversibleContainer) 知分配器容器 (AllocatorAwareContainer) 以及序列容器 (SequenceContainer) 的部分要求。

模板形参

T - 元素的类型。
对元素的要求依赖于容器上进行的实际操作。一般地,要求元素类型是完整类型并满足可擦除 (Erasable) ,但许多成员函数附带了更严格的要求。

[编辑]

Allocator - 用于获取/释放内存及构造/析构内存中元素的分配器。类型必须满足分配器 (Allocator) 。如果 Allocator::value_typeT 不同,那么行为未定义(C++20 前)程序非良构(C++20 起)[编辑]

成员类型

成员类型 定义
value_type T[编辑]
allocator_type Allocator [编辑]
pointer std::allocator_traits<Allocator>::pointer[编辑]
const_pointer std::allocator_traits<Allocator>::const_pointer[编辑]
reference value_type&[编辑]
const_reference const value_type&[编辑]
size_type 由实现定义[编辑]
difference_type 由实现定义[编辑]
iterator 由实现定义的指向 value_type老式双向迭代器 (LegacyBidirectionalIterator) [编辑]
const_iterator 由实现定义的指向 const value_type老式双向迭代器 (LegacyBidirectionalIterator) [编辑]
reverse_iterator std::reverse_iterator<iterator>[编辑]
const_reverse_iterator std::reverse_iterator<const_iterator>[编辑]

数据成员

成员 描述
hive_limits current-limits (私有) 当前的块容量限制
(仅用于阐述的成员对象*)

成员函数

构造 hive
(公开成员函数) [编辑]
析构 hive
(公开成员函数) [编辑]
将值赋给容器
(公开成员函数) [编辑]
将值赋给容器
(公开成员函数) [编辑]
将范围的值赋给容器
(公开成员函数) [编辑]
返回关联的分配器
(公开成员函数) [编辑]
迭代器
返回指向起始的迭代器
(公开成员函数) [编辑]
返回指向末尾的迭代器
(公开成员函数) [编辑]
返回指向起始的逆向迭代器
(公开成员函数) [编辑]
返回指向末尾的逆向迭代器
(公开成员函数) [编辑]
容量
检查容器是否为空
(公开成员函数) [编辑]
返回元素数
(公开成员函数) [编辑]
返回可容纳的最大元素数
(公开成员函数) [编辑]
返回当前存储空间能够容纳的元素数
(公开成员函数) [编辑]
预留存储空间
(公开成员函数) [编辑]
通过释放未使用的内存减少内存的使用
(公开成员函数) [编辑]
释放预留的内存块并相应地减少容量
(公开成员函数) [编辑]
返回当前的块容量限制
(公开成员函数) [编辑]
返回块容量的默认限制
(公开成员函数) [编辑]
返回块容量硬限制
(公开成员函数) [编辑]
检查给定的容量限制是否不超出硬限制
(公开成员函数) [编辑]
重新分配活动块,使它们处于块容量限制范围之内
(公开成员函数) [编辑]
修改器
原位构造元素
(公开成员函数) [编辑]
使用提示原位构造元素
(公开成员函数) [编辑]
插入元素
(公开成员函数) [编辑]
插入元素范围
(公开成员函数) [编辑]
擦除元素
(公开成员函数) [编辑]
交换内容
(公开成员函数) [编辑]
清除内容
(公开成员函数) [编辑]
操作
从另一个 hive 中移动元素
(公开成员函数) [编辑]
删除连续的重复元素
(公开成员函数) [编辑]
对元素进行排序
(公开成员函数) [编辑]
返回一个迭代器,该迭代器与给定的指针指向相同元素
(公开成员函数) [编辑]

非成员函数

辅助类

注解

功能特性测试 标准 功能特性
__cpp_lib_hive 202502L (C++26) std::hive

示例

参阅

外部链接