msgid ""
msgstr ""
"Project-Id-Version: English (Boost Unordered Translation (zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-06 22:52+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English <https://insights.cppalliance.org/weblate/projects/"
"boost-unordered-documentation-zh_Hans/doc-modules-root-pages-regular-adoc/"
"en/>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.5\n"

#: :1
#, read-only, safe-html, strict-same
msgid "﻿[#regular] = Regular Containers"
msgstr "﻿[#regular] = Regular Containers"

#: :4
#, read-only, safe-html, strict-same
msgid ":idprefix: regular_"
msgstr ":idprefix: regular_"

#: :6
#, read-only, safe-html, strict-same
msgid ""
"Boost.Unordered closed-addressing containers (`boost::unordered_set`, "
"`boost::unordered_map`, `boost::unordered_multiset` and "
"`boost::unordered_multimap`) are fully conformant with the C++ specification "
"for unordered associative containers, so for those who know how to use "
"`std::unordered_set`, `std::unordered_map`, etc., their homonyms in "
"Boost.Unordered are drop-in replacements. The interface of open-addressing "
"containers (`boost::unordered_node_set`, `boost::unordered_node_map`, "
"`boost::unordered_flat_set` and `boost::unordered_flat_map`) is very "
"similar, but they present some minor differences listed in the dedicated "
"xref:compliance.adoc#compliance_open_addressing_containers[standard "
"compliance section]."
msgstr ""
"Boost.Unordered closed-addressing containers (`boost::unordered_set`, "
"`boost::unordered_map`, `boost::unordered_multiset` and "
"`boost::unordered_multimap`) are fully conformant with the C++ specification "
"for unordered associative containers, so for those who know how to use "
"`std::unordered_set`, `std::unordered_map`, etc., their homonyms in "
"Boost.Unordered are drop-in replacements. The interface of open-addressing "
"containers (`boost::unordered_node_set`, `boost::unordered_node_map`, "
"`boost::unordered_flat_set` and `boost::unordered_flat_map`) is very "
"similar, but they present some minor differences listed in the dedicated "
"xref:compliance.adoc#compliance_open_addressing_containers[standard "
"compliance section]."

#: :16
#, read-only, safe-html, strict-same
msgid ""
"For readers without previous experience with hash containers but familiar "
"with normal associative containers (`std::set`, `std::map`, `std::multiset` "
"and `std::multimap`), Boost.Unordered containers are used in a similar "
"manner:"
msgstr ""
"For readers without previous experience with hash containers but familiar "
"with normal associative containers (`std::set`, `std::map`, `std::multiset` "
"and `std::multimap`), Boost.Unordered containers are used in a similar "
"manner:"

#: :32
#, read-only, safe-html, strict-same
msgid "But since the elements aren't ordered, the output of:"
msgstr "But since the elements aren't ordered, the output of:"

#: :41
#, read-only, safe-html, strict-same
msgid "can be in any order. For example, it might be:"
msgstr "can be in any order. For example, it might be:"

#: :50
#, read-only, safe-html, strict-same
msgid ""
"There are other differences, which are listed in the "
"xref:regular.adoc#comparison[Comparison with Associative Containers] section."
msgstr ""
"There are other differences, which are listed in the "
"xref:regular.adoc#comparison[Comparison with Associative Containers] section."

#: :53
#, read-only, safe-html, strict-same
msgid "Iterator Invalidation"
msgstr "Iterator Invalidation"

#: :55
#, read-only, safe-html, strict-same
msgid ""
"It is not specified how member functions other than `rehash` and `reserve` "
"affect the bucket count, although `insert` can only invalidate iterators "
"when the insertion causes the container's load to be greater than the "
"maximum allowed. For most implementations this means that `insert` will only "
"change the number of buckets when this happens. Iterators can be invalidated "
"by calls to `insert`, `rehash` and `reserve`."
msgstr ""
"It is not specified how member functions other than `rehash` and `reserve` "
"affect the bucket count, although `insert` can only invalidate iterators "
"when the insertion causes the container's load to be greater than the "
"maximum allowed. For most implementations this means that `insert` will only "
"change the number of buckets when this happens. Iterators can be invalidated "
"by calls to `insert`, `rehash` and `reserve`."

#: :62
#, read-only, safe-html, strict-same
msgid ""
"As for pointers and references, they are never invalidated for node-based "
"containers (`boost::unordered_[multi]set`, `boost::unordered_[multi]map`, "
"`boost::unordered_node_set`, `boost::unordered_node_map`), but they will be "
"when rehashing occurs for `boost::unordered_flat_set` and "
"`boost::unordered_flat_map`: this is because these containers store elements "
"directly into their holding buckets, so when allocating a new bucket array "
"the elements must be transferred by means of move construction."
msgstr ""
"As for pointers and references, they are never invalidated for node-based "
"containers (`boost::unordered_[multi]set`, `boost::unordered_[multi]map`, "
"`boost::unordered_node_set`, `boost::unordered_node_map`), but they will be "
"when rehashing occurs for `boost::unordered_flat_set` and "
"`boost::unordered_flat_map`: this is because these containers store elements "
"directly into their holding buckets, so when allocating a new bucket array "
"the elements must be transferred by means of move construction."

#: :70
#, read-only, safe-html, strict-same
msgid ""
"In a similar manner to using `reserve` for ``vector``s, it can be a good "
"idea to call `reserve` before inserting a large number of elements. This "
"will get the expensive rehashing out of the way and let you store iterators, "
"safe in the knowledge that they won't be invalidated. If you are inserting "
"`n` elements into container `x`, you could first call:"
msgstr ""
"In a similar manner to using `reserve` for ``vector``s, it can be a good "
"idea to call `reserve` before inserting a large number of elements. This "
"will get the expensive rehashing out of the way and let you store iterators, "
"safe in the knowledge that they won't be invalidated. If you are inserting "
"`n` elements into container `x`, you could first call:"

#: :76
#, read-only, safe-html, strict-same
msgid "``` x.reserve(n); ```"
msgstr "``` x.reserve(n); ```"

#: :80
#, read-only, safe-html, strict-same
msgid ""
"`reserve(n)` reserves space for at least `n` elements, allocating enough "
"buckets"
msgstr ""
"`reserve(n)` reserves space for at least `n` elements, allocating enough "
"buckets"

#: :81
#, read-only, safe-html, strict-same
msgid ""
"so as to not exceed the maximum load factor. + Because the maximum load "
"factor is defined as the number of elements divided by the total number of "
"available buckets, this function is logically equivalent to: + ``` x.rehash"
"(std::ceil(n / x.max_load_factor())) ``` + See the xref:reference/"
"unordered_map.adoc#unordered_map_rehash[reference for more details] on the "
"`rehash` function."
msgstr ""
"so as to not exceed the maximum load factor. + Because the maximum load "
"factor is defined as the number of elements divided by the total number of "
"available buckets, this function is logically equivalent to: + ``` x.rehash"
"(std::ceil(n / x.max_load_factor())) ``` + See the xref:reference/"
"unordered_map.adoc#unordered_map_rehash[reference for more details] on the "
"`rehash` function."

#: :94
#, read-only, safe-html, strict-same
msgid ":idprefix: comparison_"
msgstr ":idprefix: comparison_"

#: :96
#, read-only, safe-html, strict-same
msgid "Comparison with Associative Containers"
msgstr "Comparison with Associative Containers"

#: :100
#, read-only, safe-html, strict-same
msgctxt ":100"
msgid "Associative Containers"
msgstr "Associative Containers"

#: :100
#, read-only, safe-html, strict-same
msgctxt ":100"
msgid "Unordered Associative Containers"
msgstr "Unordered Associative Containers"

#: :100
#, read-only, safe-html, strict-same
msgid "Parameterized by an ordering relation `Compare`"
msgstr "Parameterized by an ordering relation `Compare`"

#: :100
#, read-only, safe-html, strict-same
msgid ""
"Parameterized by a function object `Hash` and an equivalence relation `Pred`"
msgstr ""
"Parameterized by a function object `Hash` and an equivalence relation `Pred`"

#: :100
#, read-only, safe-html, strict-same
msgid ""
"Keys can be compared using `key_compare` which is accessed by member "
"function `key_comp()`, values can be compared using `value_compare` which is "
"accessed by member function `value_comp()`."
msgstr ""
"Keys can be compared using `key_compare` which is accessed by member "
"function `key_comp()`, values can be compared using `value_compare` which is "
"accessed by member function `value_comp()`."

#: :100
#, read-only, safe-html, strict-same
msgid ""
"Keys can be hashed using `hasher` which is accessed by member function "
"`hash_function()`, and checked for equality using `key_equal` which is "
"accessed by member function `key_eq()`. There is no function object for "
"compared or hashing values."
msgstr ""
"Keys can be hashed using `hasher` which is accessed by member function "
"`hash_function()`, and checked for equality using `key_equal` which is "
"accessed by member function `key_eq()`. There is no function object for "
"compared or hashing values."

#: :100
#, read-only, safe-html, strict-same
msgid "Constructors have optional extra parameters for the comparison object."
msgstr "Constructors have optional extra parameters for the comparison object."

#: :100
#, read-only, safe-html, strict-same
msgid ""
"Constructors have optional extra parameters for the initial minimum number "
"of buckets, a hash function and an equality object."
msgstr ""
"Constructors have optional extra parameters for the initial minimum number "
"of buckets, a hash function and an equality object."

#: :100
#, read-only, safe-html, strict-same
msgid ""
"Keys `k1`, `k2` are considered equivalent if `!Compare(k1, k2) && !Compare"
"(k2, k1)`."
msgstr ""
"Keys `k1`, `k2` are considered equivalent if `!Compare(k1, k2) && !Compare"
"(k2, k1)`."

#: :100
#, read-only, safe-html, strict-same
msgid "Keys `k1`, `k2` are considered equivalent if `Pred(k1, k2)`"
msgstr "Keys `k1`, `k2` are considered equivalent if `Pred(k1, k2)`"

#: :100
#, read-only, safe-html, strict-same
msgid "Member function `lower_bound(k)` and `upper_bound(k)`"
msgstr "Member function `lower_bound(k)` and `upper_bound(k)`"

#: :100
#, read-only, safe-html, strict-same
msgid ""
"No equivalent. Since the elements aren't ordered `lower_bound` and "
"`upper_bound` would be meaningless."
msgstr ""
"No equivalent. Since the elements aren't ordered `lower_bound` and "
"`upper_bound` would be meaningless."

#: :100
#, read-only, safe-html, strict-same
msgid ""
"`equal_range(k)` returns an empty range at the position that `k` would be "
"inserted if `k` isn't present in the container."
msgstr ""
"`equal_range(k)` returns an empty range at the position that `k` would be "
"inserted if `k` isn't present in the container."

#: :100
#, read-only, safe-html, strict-same
msgid ""
"`equal_range(k)` returns a range at the end of the container if `k` isn't "
"present in the container. It can't return a positioned range as `k` could be "
"inserted into multiple place. +"
msgstr ""
"`equal_range(k)` returns a range at the end of the container if `k` isn't "
"present in the container. It can't return a positioned range as `k` could be "
"inserted into multiple place. +"

#: :120
#, read-only, safe-html, strict-same
msgid ""
"**Closed-addressing containers:** To find out the bucket that `k` would be "
"inserted into use `bucket(k)`. But remember that an insert can cause the "
"container to rehash - meaning that the element can be inserted into a "
"different bucket."
msgstr ""
"**Closed-addressing containers:** To find out the bucket that `k` would be "
"inserted into use `bucket(k)`. But remember that an insert can cause the "
"container to rehash - meaning that the element can be inserted into a "
"different bucket."

#: :122
#, read-only, safe-html, strict-same
msgid "`iterator`, `const_iterator` are of the bidirectional category."
msgstr "`iterator`, `const_iterator` are of the bidirectional category."

#: :122
#, read-only, safe-html, strict-same
msgid "`iterator`, `const_iterator` are of at least the forward category."
msgstr "`iterator`, `const_iterator` are of at least the forward category."

#: :122
#, read-only, safe-html, strict-same
msgid ""
"Iterators, pointers and references to the container's elements are never "
"invalidated."
msgstr ""
"Iterators, pointers and references to the container's elements are never "
"invalidated."

#: :122
#, read-only, safe-html, strict-same
msgid ""
"xref:regular.adoc#regular_iterator_invalidation[Iterators can be invalidated "
"by calls to insert or rehash]. +"
msgstr ""
"xref:regular.adoc#regular_iterator_invalidation[Iterators can be invalidated "
"by calls to insert or rehash]. +"

#: :127
#, read-only, safe-html, strict-same
msgid ""
"**Node-based containers:** Pointers and references to the container's "
"elements are never invalidated. + **Flat containers:** Pointers and "
"references to the container's elements are invalidated when rehashing occurs."
msgstr ""
"**Node-based containers:** Pointers and references to the container's "
"elements are never invalidated. + **Flat containers:** Pointers and "
"references to the container's elements are invalidated when rehashing occurs."

#: :130
#, read-only, safe-html, strict-same
msgid ""
"Iterators iterate through the container in the order defined by the "
"comparison object."
msgstr ""
"Iterators iterate through the container in the order defined by the "
"comparison object."

#: :130
#, read-only, safe-html, strict-same
msgid ""
"Iterators iterate through the container in an arbitrary order, that can "
"change as elements are inserted, although equivalent elements are always "
"adjacent."
msgstr ""
"Iterators iterate through the container in an arbitrary order, that can "
"change as elements are inserted, although equivalent elements are always "
"adjacent."

#: :130
#, read-only, safe-html, strict-same
msgid "No equivalent"
msgstr "No equivalent"

#: :130
#, read-only, safe-html, strict-same
msgid ""
"**Closed-addressing containers:** Local iterators can be used to iterate "
"through individual buckets. (The order of local iterators and iterators "
"aren't required to have any correspondence.)"
msgstr ""
"**Closed-addressing containers:** Local iterators can be used to iterate "
"through individual buckets. (The order of local iterators and iterators "
"aren't required to have any correspondence.)"

#: :130
#, read-only, safe-html, strict-same
msgid "Can be compared using the `==`, `!=`, `<`, `\\<=`, `>`, `>=` operators."
msgstr "Can be compared using the `==`, `!=`, `<`, `\\<=`, `>`, `>=` operators."

#: :130
#, read-only, safe-html, strict-same
msgid "Can be compared using the `==` and `!=` operators."
msgstr "Can be compared using the `==` and `!=` operators."

#: :130
#, read-only, safe-html, strict-same
msgid ""
"When inserting with a hint, implementations are permitted to ignore the hint."
msgstr ""
"When inserting with a hint, implementations are permitted to ignore the hint."

#: :144
#, read-only, safe-html, strict-same
msgid "---"
msgstr "---"

#: :148
#, read-only, safe-html, strict-same
msgid "Operation"
msgstr "Operation"

#: :148
#, read-only, safe-html, strict-same
msgctxt ":148"
msgid "Associative Containers"
msgstr "Associative Containers"

#: :148
#, read-only, safe-html, strict-same
msgctxt ":148"
msgid "Unordered Associative Containers"
msgstr "Unordered Associative Containers"

#: :148
#, read-only, safe-html, strict-same
msgid "Construction of empty container"
msgstr "Construction of empty container"

#: :148
#, read-only, safe-html, strict-same
msgid "constant"
msgstr "constant"

#: :148
#, read-only, safe-html, strict-same
msgid "O(_n_) where _n_ is the minimum number of buckets."
msgstr "O(_n_) where _n_ is the minimum number of buckets."

#: :148
#, read-only, safe-html, strict-same
msgid "Construction of container from a range of _N_ elements"
msgstr "Construction of container from a range of _N_ elements"

#: :148
#, read-only, safe-html, strict-same
msgid "O(_N log N_), O(_N_) if the range is sorted with `value_comp()`"
msgstr "O(_N log N_), O(_N_) if the range is sorted with `value_comp()`"

#: :148
#, read-only, safe-html, strict-same
msgid "Average case O(_N_), worst case O(_N^2^_)"
msgstr "Average case O(_N_), worst case O(_N^2^_)"

#: :148
#, read-only, safe-html, strict-same
msgid "Insert a single element"
msgstr "Insert a single element"

#: :148
#, read-only, safe-html, strict-same
msgctxt ":148"
msgid "logarithmic"
msgstr "logarithmic"

#: :148
#, read-only, safe-html, strict-same
msgid "Average case constant, worst case linear"
msgstr "Average case constant, worst case linear"

#: :148
#, read-only, safe-html, strict-same
msgid "Insert a single element with a hint"
msgstr "Insert a single element with a hint"

#: :148
#, read-only, safe-html, strict-same
msgid ""
"Amortized constant if `t` elements inserted right after hint, logarithmic "
"otherwise"
msgstr ""
"Amortized constant if `t` elements inserted right after hint, logarithmic "
"otherwise"

#: :148
#, read-only, safe-html, strict-same
msgid ""
"Average case constant, worst case linear (ie. the same as a normal insert)."
msgstr ""
"Average case constant, worst case linear (ie. the same as a normal insert)."

#: :148
#, read-only, safe-html, strict-same
msgid "Inserting a range of _N_ elements"
msgstr "Inserting a range of _N_ elements"

#: :148
#, read-only, safe-html, strict-same
msgid "_N_ log(`size()` + _N_)"
msgstr "_N_ log(`size()` + _N_)"

#: :148
#, read-only, safe-html, strict-same
msgid "Average case O(_N_), worst case O(_N_ * `size()`)"
msgstr "Average case O(_N_), worst case O(_N_ * `size()`)"

#: :148
#, read-only, safe-html, strict-same
msgid "Erase by key, `k`"
msgstr "Erase by key, `k`"

#: :148
#, read-only, safe-html, strict-same
msgctxt ":148"
msgid "O(log(`size()`) + `count(k)`)"
msgstr "O(log(`size()`) + `count(k)`)"

#: :148
#, read-only, safe-html, strict-same
msgctxt ":148"
msgid "Average case: O(`count(k)`), Worst case: O(`size()`)"
msgstr "Average case: O(`count(k)`), Worst case: O(`size()`)"

#: :148
#, read-only, safe-html, strict-same
msgid "Erase a single element by iterator"
msgstr "Erase a single element by iterator"

#: :148
#, read-only, safe-html, strict-same
msgid "Amortized constant"
msgstr "Amortized constant"

#: :148
#, read-only, safe-html, strict-same
msgctxt ":148"
msgid "Average case: O(1), Worst case: O(`size()`)"
msgstr "Average case: O(1), Worst case: O(`size()`)"

#: :148
#, read-only, safe-html, strict-same
msgid "Erase a range of _N_ elements"
msgstr "Erase a range of _N_ elements"

#: :148
#, read-only, safe-html, strict-same
msgid "O(log(`size()`) + _N_)"
msgstr "O(log(`size()`) + _N_)"

#: :148
#, read-only, safe-html, strict-same
msgid "Average case: O(_N_), Worst case: O(`size()`)"
msgstr "Average case: O(_N_), Worst case: O(`size()`)"

#: :148
#, read-only, safe-html, strict-same
msgid "Clearing the container"
msgstr "Clearing the container"

#: :148
#, read-only, safe-html, strict-same
msgctxt ":148"
msgid "O(`size()`)"
msgstr "O(`size()`)"

#: :148
#, read-only, safe-html, strict-same
msgid "Find"
msgstr "Find"

#: :148
#, read-only, safe-html, strict-same
msgid "Count"
msgstr "Count"

#: :148
#, read-only, safe-html, strict-same
msgid "`equal_range(k)`"
msgstr "`equal_range(k)`"

#: :148
#, read-only, safe-html, strict-same
msgid "`lower_bound`,`upper_bound`"
msgstr "`lower_bound`,`upper_bound`"

#: :148
#, read-only, safe-html, strict-same
msgid "n/a"
msgstr "n/a"
