msgid ""
msgstr ""
"Project-Id-Version: English (Boost Unordered Translation (zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-07 06:13+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-intro-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"

#: :2
#, read-only, safe-html, strict-same
msgid "= Introduction"
msgstr "= Introduction"

#: :4
#, read-only, safe-html, strict-same
msgid ":idprefix: intro_ :cpp: C++"
msgstr ":idprefix: intro_ :cpp: C++"

#: :7
#, read-only, safe-html, strict-same
msgid ""
"link:https://en.wikipedia.org/wiki/Hash_table[Hash tables^] are extremely "
"popular computer data structures and can be found under one form or another "
"in virtually any programming language. Whereas other associative structures "
"such as rb-trees (used in {cpp} by `std::set` and `std::map`) have "
"logarithmic-time complexity for insertion and lookup, hash tables, if "
"configured properly, perform these operations in constant time on average, "
"and are generally much faster."
msgstr ""
"link:https://en.wikipedia.org/wiki/Hash_table[Hash tables^] are extremely "
"popular computer data structures and can be found under one form or another "
"in virtually any programming language. Whereas other associative structures "
"such as rb-trees (used in {cpp} by `std::set` and `std::map`) have "
"logarithmic-time complexity for insertion and lookup, hash tables, if "
"configured properly, perform these operations in constant time on average, "
"and are generally much faster."

#: :13
#, read-only, safe-html, strict-same
msgid ""
"{cpp} introduced __unordered associative containers__ `std::unordered_set`, "
"`std::unordered_map`, `std::unordered_multiset` and "
"`std::unordered_multimap` in {cpp}11, but research on hash tables hasn't "
"stopped since: advances in CPU architectures such as more powerful caches, "
"link:https://en.wikipedia.org/wiki/Single_instruction,_multiple_data[SIMD] "
"operations and increasingly available link:https://en.wikipedia.org/wiki/"
"Multi-core_processor[multicore processors] open up possibilities for "
"improved hash-based data structures and new use cases that are simply beyond "
"reach of unordered associative containers as specified in 2011."
msgstr ""
"{cpp} introduced __unordered associative containers__ `std::unordered_set`, "
"`std::unordered_map`, `std::unordered_multiset` and "
"`std::unordered_multimap` in {cpp}11, but research on hash tables hasn't "
"stopped since: advances in CPU architectures such as more powerful caches, "
"link:https://en.wikipedia.org/wiki/Single_instruction,_multiple_data[SIMD] "
"operations and increasingly available link:https://en.wikipedia.org/wiki/"
"Multi-core_processor[multicore processors] open up possibilities for "
"improved hash-based data structures and new use cases that are simply beyond "
"reach of unordered associative containers as specified in 2011."

#: :21
#, read-only, safe-html, strict-same
msgid ""
"Boost.Unordered offers a catalog of hash containers with different standards "
"compliance levels, performances and intented usage scenarios:"
msgstr ""
"Boost.Unordered offers a catalog of hash containers with different standards "
"compliance levels, performances and intented usage scenarios:"

#: :27
#, read-only, safe-html, strict-same
msgid "^h| ^h|*Node-based* ^h|*Flat*"
msgstr "^h| ^h|*Node-based* ^h|*Flat*"

#: :31
#, read-only, safe-html, strict-same
msgid ""
"^.^h|*Closed addressing* ^m| boost::unordered_set + boost::unordered_map + "
"boost::unordered_multiset + boost::unordered_multimap ^|"
msgstr ""
"^.^h|*Closed addressing* ^m| boost::unordered_set + boost::unordered_map + "
"boost::unordered_multiset + boost::unordered_multimap ^|"

#: :39
#, read-only, safe-html, strict-same
msgid ""
"^.^h|*Open addressing* ^m| boost::unordered_node_set + "
"boost::unordered_node_map ^m| boost::unordered_flat_set + "
"boost::unordered_flat_map"
msgstr ""
"^.^h|*Open addressing* ^m| boost::unordered_node_set + "
"boost::unordered_node_map ^m| boost::unordered_flat_set + "
"boost::unordered_flat_map"

#: :45
#, read-only, safe-html, strict-same
msgid ""
"^.^h|*Concurrent* ^| `boost::concurrent_node_set` + "
"`boost::concurrent_node_map` ^| `boost::concurrent_flat_set` + "
"`boost::concurrent_flat_map`"
msgstr ""
"^.^h|*Concurrent* ^| `boost::concurrent_node_set` + "
"`boost::concurrent_node_map` ^| `boost::concurrent_flat_set` + "
"`boost::concurrent_flat_map`"

#: :53
#, read-only, safe-html, strict-same
msgid ""
"**Closed-addressing containers** are fully compliant with the C++ "
"specification"
msgstr ""
"**Closed-addressing containers** are fully compliant with the C++ "
"specification"

#: :54
#, read-only, safe-html, strict-same
msgid ""
"for unordered associative containers and feature one of the fastest "
"implementations in the market within the technical constraints imposed by "
"the required standard interface."
msgstr ""
"for unordered associative containers and feature one of the fastest "
"implementations in the market within the technical constraints imposed by "
"the required standard interface."

#: :56
#, read-only, safe-html, strict-same
msgid ""
"**Open-addressing containers** rely on much faster data structures and "
"algorithms"
msgstr ""
"**Open-addressing containers** rely on much faster data structures and "
"algorithms"

#: :57
#, read-only, safe-html, strict-same
msgid ""
"(more than 2 times faster in typical scenarios) while slightly diverging "
"from the standard interface to accommodate the implementation. There are two "
"variants: **flat** (the fastest) and **node-based**, which provide pointer "
"stability under rehashing at the expense of being slower."
msgstr ""
"(more than 2 times faster in typical scenarios) while slightly diverging "
"from the standard interface to accommodate the implementation. There are two "
"variants: **flat** (the fastest) and **node-based**, which provide pointer "
"stability under rehashing at the expense of being slower."

#: :61
#, read-only, safe-html, strict-same
msgid ""
"Finally, **concurrent containers** are designed and implemented to be used "
"in high-performance"
msgstr ""
"Finally, **concurrent containers** are designed and implemented to be used "
"in high-performance"

#: :62
#, read-only, safe-html, strict-same
msgid ""
"multithreaded scenarios. Their interface is radically different from that of "
"regular C++ containers. Flat and node-based variants are provided."
msgstr ""
"multithreaded scenarios. Their interface is radically different from that of "
"regular C++ containers. Flat and node-based variants are provided."

#: :65
#, read-only, safe-html, strict-same
msgid ""
"All sets and maps in Boost.Unordered are instantiatied similarly as "
"`std::unordered_set` and `std::unordered_map`, respectively:"
msgstr ""
"All sets and maps in Boost.Unordered are instantiatied similarly as "
"`std::unordered_set` and `std::unordered_map`, respectively:"

#: :91
#, read-only, safe-html, strict-same
msgid ""
"Storing an object in an unordered associative container requires both a key "
"equality function and a hash function. The default function objects in the "
"standard containers support a few basic types including integer types, "
"floating point types, pointer types, and the standard strings. Since "
"Boost.Unordered uses link:../../../../container_hash/"
"index.html[boost::hash^] it also supports some other types, including "
"standard containers. To use any types not supported by these methods you "
"have to extend Boost.Hash to support the type or use your own custom "
"equality predicates and hash functions. See the "
"xref:hash_equality.adoc#hash_equality[Equality Predicates and Hash "
"Functions], section for more details."
msgstr ""
"Storing an object in an unordered associative container requires both a key "
"equality function and a hash function. The default function objects in the "
"standard containers support a few basic types including integer types, "
"floating point types, pointer types, and the standard strings. Since "
"Boost.Unordered uses link:../../../../container_hash/"
"index.html[boost::hash^] it also supports some other types, including "
"standard containers. To use any types not supported by these methods you "
"have to extend Boost.Hash to support the type or use your own custom "
"equality predicates and hash functions. See the "
"xref:hash_equality.adoc#hash_equality[Equality Predicates and Hash "
"Functions], section for more details."
