
std::unordered_map
文章平均质量分 92
unordered_map 是关联容器,含有带唯一键的键-值 pair 。搜索、插入和元素移除拥有平均常数时间复杂度。
元素在内部不以任何特定顺序排序,而是组织进桶中。元素放进哪个桶完全依赖于其键的哈希。这允许对单独元素的快速访问,因为一旦计算哈希,则它准确指代元素所放进的桶。
繁星璀璨G
单身,求对象
展开
-
c++11 标准模板(STL)(std::unordered_map)(十四)
比较二个无序容器的内容。为 std::unordered_map 特化 std::swap 算法。交换 lhs 与 rhs 的内容。调用 lhs.swap(rhs) 。原创 2023-03-16 08:30:00 · 511 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(十三)
返回每个桶元素的平均数,即 size() 除以 bucket_count() 。设置桶数为 count 并重哈希容器,即考虑桶总数已改变,再把元素放到适当的桶中。管理最大加载因子(每个桶的平均元素数)。若加载因子超出此阈值,则容器自动增加桶数。设置桶数为适应至少 count 个元素,而不超出最大加载因子所需的数,并重哈希容器,即考虑桶数已更改后将元素放进适合的桶。等效地调用 rehash(std::ceil(count / max_load_factor())) 。原创 2023-03-15 09:30:00 · 498 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(十二)
返回指向下标为 n 的桶首元素的迭代器。返回后随下标为 n 的桶的最后元素的元素的迭代器。此元素表现为占位符,试图访问它会导致未定义行为。原创 2023-03-14 08:30:00 · 313 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(十一)
返回容器中的桶数。返回容器由于系统或库实现限制的能保有的最大桶数。返回下标为 n 的桶中的元素数。返回关键 key 的桶的下标。始终会在此桶中找到关键等于 key 的元素(若存在)。返回值仅对 bucket_count() 返回相同值的容器实例合法。原创 2023-03-13 08:30:00 · 608 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(十)
1) 返回拥有比较等于指定参数 key 的关键的元素数,因为此容器不允许重复故为 1 或 0 。1,2) 寻找键等于 key 的的元素。1,2) 返回容器中所有键等于 key 的元素范围。范围以二个迭代器定义,第一个指向所需范围的首元素,而第二个指向范围的尾后一位元素。原创 2023-03-12 08:30:00 · 344 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(九)
返回到拥有等于 key 的关键的元素被映射值的引用。若无这种元素,则抛出 std::out_of_range 类型异常。返回到映射到等于 key 的关键的值的引用,若这种关键不存在则进行插入。原创 2023-03-11 08:30:00 · 694 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(八)
从容器擦除所有元素。此调用后 size() 返回零。从容器移除指定的元素。1) 移除位于 pos 的元素。2) 移除范围 [first; last) 中的元素,它必须是 *this 中的合法范围。3) 移除关键等于 key 的元素(若存在一个)。原创 2023-03-10 08:30:00 · 609 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(七)
若容器中无拥有该关键的元素,则插入以给定的 args 原位构造的新元素到容器。插入新元素到容器,以 hint 为应当放置新元素位置的建议。原位构造元素,即不进行复制或移动操作。将内容与 other 的交换。不在单个元素上调用任何移动、复制或交换操作。原创 2023-03-09 08:30:00 · 534 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(六)
若容器尚未含有带等价关键的元素,则插入元素到容器中。1-2) 插入 value 。3-4) 插入 value ,以 hint 为应当开始搜索的位置的非强制建议。5) 插入来自范围 [first, last) 的元素。6) 插入来自 initializer_list ilist 的元素。原创 2023-03-08 08:30:00 · 419 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(五)
检查容器是否无元素,即是否 begin() == end() 。返回容器中的元素数,即 std::distance(begin(), end()) 。返回根据系统或库实现限制的容器可保有的元素最大数量,即对于最大容器的 std::distance(begin(), end()) 。原创 2023-03-07 08:30:00 · 573 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(四)
返回指向容器首元素的迭代器。若容器为空,则返回的迭代器将等于 end() 。返回指向容器末元素后一元素的迭代器。此元素表现为占位符;试图访问它导致未定义行为。原创 2023-03-06 08:30:00 · 485 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(三)
1) 复制赋值运算符。以 other 的副本替换内容。2) 移动赋值运算符。用移动语义以 other 的内容替换内容(即从 other 移动 other 中的数据到此容器)。3) 以 initializer_list ilist 所标识者替换内容。原创 2023-03-05 08:30:00 · 739 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(二)
1) 构造空容器。设置 max_load_factor() 为 1.0 。2) 构造拥有范围 [first, last) 的内容的容器。设置 max_load_factor() 为 1.0 。3) 复制构造函数。构造拥有 other 内容副本的容器,一同复制加载因子、谓词和哈希函数。4) 移动构造函数。用移动语义构造拥有 other 内容的容器。5) 构造拥有 initializer_list init 内容的容器,同 unordered_map(init.begin(), init.end())原创 2023-03-04 08:30:00 · 750 阅读 · 0 评论 -
c++11 标准模板(STL)(std::unordered_map)(一)
unordered_map 是关联容器,含有带唯一键的键-值 pair 。搜索、插入和元素移除拥有平均常数时间复杂度。元素在内部不以任何特定顺序排序,而是组织进桶中。元素放进哪个桶完全依赖于其键的哈希。这允许对单独元素的快速访问,因为一旦计算哈希,则它准确指代元素所放进的桶。原创 2023-03-03 08:30:00 · 928 阅读 · 0 评论