<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="">Class Template unordered_set</string>
    <string name="">:idprefix: unordered_set_</string>
    <string name="">`boost::unordered_set` — An unordered associative container that stores unique values.</string>
    <string name="">Synopsis</string>
    <string name=":239">---</string>
    <string name="">Description</string>
    <string name="">*Template Parameters*</string>
    <string name="">_Key_</string>
    <string name="">`Key` must be https://en.cppreference.com/w/cpp/named_req/Erasable[Erasable^] from the container (i.e. `allocator_traits` can destroy it).</string>
    <string name="">_Hash_</string>
    <string name="">A unary function object type that acts a hash function for a `Key`. It takes a single argument of type `Key` and returns a value of type `std::size_t`.</string>
    <string name="">_Pred_</string>
    <string name="">A binary function object that implements an equivalence relation on values of type `Key`. A binary function object that induces an equivalence relation on values of type `Key`. It takes two arguments of type `Key` and returns a value of type bool.</string>
    <string name="">_Allocator_</string>
    <string name="">An allocator whose value type is the same as the container\'s value type.</string>
    <string name="">Allocators using https://en.cppreference.com/w/cpp/named_req/Allocator#Fancy_pointers[fancy pointers] are supported.</string>
    <string name="">The elements are organized into buckets. Keys with the same hash code are stored in the same bucket.</string>
    <string name="">The number of buckets can be automatically increased by a call to insert, or as the result of calling rehash.</string>
    <string name="">Configuration macros</string>
    <string name="">`BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0`</string>
    <string name="">Globally define this macro to support loading of ``unordered_set``s saved to a Boost.Serialization archive with a version of Boost prior to Boost 1.84.</string>
    <string name="">Typedefs</string>
    <string name=":281">A constant iterator whose value type is `value_type`.</string>
    <string name=":283">The iterator category is at least a forward iterator.</string>
    <string name="">Convertible to `const_iterator`.</string>
    <string name=":287">---</string>
    <string name=":294">A constant iterator whose value type is `value_type`.</string>
    <string name=":296">The iterator category is at least a forward iterator.</string>
    <string name=":298">---</string>
    <string name="">An iterator with the same value type, difference type and pointer and reference type as iterator.</string>
    <string name="">A `local_iterator` object can be used to iterate through a single bucket.</string>
    <string name=":309">---</string>
    <string name="">A constant iterator with the same value type, difference type and pointer and reference type as const_iterator.</string>
    <string name="">A const_local_iterator object can be used to iterate through a single bucket.</string>
    <string name=":320">---</string>
    <string name="">A class for holding extracted container elements, modelling https://en.cppreference.com/w/cpp/container/node_handle[NodeHandle].</string>
    <string name=":330">---</string>
    <string name="">A specialization of an internal class template:</string>
    <string name="">with `Iterator` = `iterator` and `NodeType` = `node_type`.</string>
    <string name=":352">---</string>
    <string name="">Constructors</string>
    <string name="">Default Constructor</string>
    <string name="">```c++ unordered_set(); ```</string>
    <string name="">Constructs an empty container using `hasher()` as the hash function, `key_equal()` as the key equality predicate, `allocator_type()` as the allocator and a maximum load factor of `1.0`.</string>
    <string name=":366">Postconditions:;; `size() == 0` Requires:;; If the defaults are used, `hasher`, `key_equal` and `allocator_type` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":369">---</string>
    <string name="">Bucket Count Constructor</string>
    <string name="">```c++ explicit unordered_set(size_type n, const hasher&amp; hf = hasher(), const key_equal&amp; eql = key_equal(), const allocator_type&amp; a = allocator_type()); ```</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `hf` as the hash function, `eql` as the key equality predicate, `a` as the allocator and a maximum load factor of `1.0`.</string>
    <string name=":384">Postconditions:;; `size() == 0` Requires:;; If the defaults are used, `hasher`, `key_equal` and `allocator_type` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":387">---</string>
    <string name="">Iterator Range Constructor</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `hf` as the hash function, `eql` as the key equality predicate, `a` as the allocator and a maximum load factor of `1.0` and inserts the elements from `[f, l)` into it.</string>
    <string name=":403">Requires:;; If the defaults are used, `hasher`, `key_equal` and `allocator_type` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":405">---</string>
    <string name="">Copy Constructor</string>
    <string name="">```c++ unordered_set(const unordered_set&amp; other); ```</string>
    <string name="">The copy constructor. Copies the contained elements, hash function, predicate, maximum load factor and allocator.</string>
    <string name="">If `Allocator::select_on_container_copy_construction` exists and has the right signature, the allocator will be constructed from its result.</string>
    <string name=":417">Requires:;; `value_type` is copy constructible</string>
    <string name=":419">---</string>
    <string name="">Move Constructor</string>
    <string name="">```c++ unordered_set(unordered_set&amp;&amp; other); ```</string>
    <string name="">The move constructor.</string>
    <string name="">Notes:;; This is implemented using Boost.Move. Requires:;; `value_type` is move-constructible.</string>
    <string name=":432">---</string>
    <string name="">Iterator Range Constructor with Allocator</string>
    <string name="">```c++ template&lt;class InputIterator&gt; unordered_set(InputIterator f, InputIterator l, const allocator_type&amp; a); ```</string>
    <string name="">Constructs an empty container using `a` as the allocator, with the default hash function and key equality predicate and a maximum load factor of `1.0` and inserts the elements from `[f, l)` into it.</string>
    <string name=":443">Requires:;; `hasher`, `key_equal` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":445">---</string>
    <string name="">Allocator Constructor</string>
    <string name="">```c++ explicit unordered_set(const Allocator&amp; a); ```</string>
    <string name="">Constructs an empty container, using allocator `a`.</string>
    <string name=":454">---</string>
    <string name="">Copy Constructor with Allocator</string>
    <string name="">```c++ unordered_set(const unordered_set&amp; other, const Allocator&amp; a); ```</string>
    <string name="">Constructs an container, copying ``other``\'s contained elements, hash function, predicate, maximum load factor, but using allocator `a`.</string>
    <string name=":463">---</string>
    <string name="">Move Constructor with Allocator</string>
    <string name="">```c++ unordered_set(unordered_set&amp;&amp; other, const Allocator&amp; a); ```</string>
    <string name="">Construct a container moving ``other``\'s contained elements, and having the hash function, predicate and maximum load factor, but using allocate `a`.</string>
    <string name="">Notes:;; This is implemented using Boost.Move. Requires:;; `value_type` is move insertable.</string>
    <string name=":476">---</string>
    <string name="">Initializer List Constructor</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `hf` as the hash function, `eql` as the key equality predicate, `a` as the allocator and a maximum load factor of `1.0` and inserts the elements from `il` into it.</string>
    <string name=":491">Requires:;; If the defaults are used, `hasher`, `key_equal` and `allocator_type` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":493">---</string>
    <string name="">Bucket Count Constructor with Allocator</string>
    <string name="">```c++ unordered_set(size_type n, const allocator_type&amp; a); ```</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `hf` as the hash function, the default hash function and key equality predicate, `a` as the allocator and a maximum load factor of `1.0`.</string>
    <string name="">Postconditions:;; `size() == 0` Requires:;; `hasher` and `key_equal` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":506">---</string>
    <string name="">Bucket Count Constructor with Hasher and Allocator</string>
    <string name="">```c++ unordered_set(size_type n, const hasher&amp; hf, const allocator_type&amp; a); ```</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `hf` as the hash function, the default key equality predicate, `a` as the allocator and a maximum load factor of `1.0`.</string>
    <string name="">Postconditions:;; `size() == 0` Requires:;; `key_equal` needs to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":519">---</string>
    <string name="">Iterator Range Constructor with Bucket Count and Allocator</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `a` as the allocator, with the default hash function and key equality predicate and a maximum load factor of `1.0` and inserts the elements from `[f, l)` into it.</string>
    <string name=":531">Requires:;; `hasher`, `key_equal` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":533">---</string>
    <string name="">Iterator Range Constructor with Bucket Count and Hasher</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `hf` as the hash function, `a` as the allocator, with the default key equality predicate and a maximum load factor of `1.0` and inserts the elements from `[f, l)` into it.</string>
    <string name=":546">Requires:;; `key_equal` needs to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":548">---</string>
    <string name="">initializer_list Constructor with Allocator</string>
    <string name="">```c++ unordered_set(std::initializer_list&lt;value_type&gt; il, const allocator_type&amp; a); ```</string>
    <string name="">Constructs an empty container using `a` as the allocator and a maximum load factor of 1.0 and inserts the elements from `il` into it.</string>
    <string name=":559">Requires:;; `hasher` and `key_equal` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":561">---</string>
    <string name="">initializer_list Constructor with Bucket Count and Allocator</string>
    <string name="">```c++ unordered_set(std::initializer_list&lt;value_type&gt; il, size_type n, const allocator_type&amp; a); ```</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `a` as the allocator and a maximum load factor of 1.0 and inserts the elements from `il` into it.</string>
    <string name=":572">Requires:;; `hasher` and `key_equal` need to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":574">---</string>
    <string name="">initializer_list Constructor with Bucket Count and Hasher and Allocator</string>
    <string name="">```c++ unordered_set(std::initializer_list&lt;value_type&gt; il, size_type n, const hasher&amp; hf, const allocator_type&amp; a); ```</string>
    <string name="">Constructs an empty container with at least `n` buckets, using `hf` as the hash function, `a` as the allocator and a maximum load factor of 1.0 and inserts the elements from `il` into it.</string>
    <string name=":586">Requires:;; `key_equal` needs to be https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^].</string>
    <string name=":588">---</string>
    <string name="">Destructor</string>
    <string name="">```c++ ~unordered_set(); ```</string>
    <string name="">Note:;; The destructor is applied to every element, and all memory is deallocated</string>
    <string name=":599">---</string>
    <string name="">Assignment</string>
    <string name="">Copy Assignment</string>
    <string name="">```c++ unordered_set&amp; operator=(const unordered_set&amp; other); ```</string>
    <string name="">The assignment operator. Copies the contained elements, hash function, predicate and maximum load factor but not the allocator.</string>
    <string name="">If `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`, the allocator is overwritten, if not the copied elements are created using the existing allocator.</string>
    <string name=":614">Requires:;; `value_type` is copy constructible</string>
    <string name=":616">---</string>
    <string name="">Move Assignment</string>
    <string name="">```c++ unordered_set&amp; operator=(unordered_set&amp;&amp; other) noexcept(boost::allocator_traits&lt;Allocator&gt;::is_always_equal::value &amp;&amp; boost::is_nothrow_move_assignable_v&lt;Hash&gt; &amp;&amp; boost::is_nothrow_move_assignable_v&lt;Pred&gt;); ``` The move assignment operator.</string>
    <string name="">If `Alloc::propagate_on_container_move_assignment` exists and `Alloc::propagate_on_container_move_assignment::value` is `true`, the allocator is overwritten, if not the moved elements are created using the existing allocator.</string>
    <string name="">Requires:;; `value_type` is move constructible.</string>
    <string name=":632">---</string>
    <string name="">Initializer List Assignment</string>
    <string name="">```c++ unordered_set&amp; operator=(std::initializer_list&lt;value_type&gt; il); ```</string>
    <string name="">Assign from values in initializer list. All existing elements are either overwritten by the new elements or destroyed.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInsertable[CopyInsertable^] into the container and https://en.cppreference.com/w/cpp/named_req/CopyAssignable[CopyAssignable^].</string>
    <string name=":644">---</string>
    <string name="">Iterators</string>
    <string name=":648">begin</string>
    <string name="">"```c++ iterator       begin() noexcept; const_iterator begin() const noexcept; ```"</string>
    <string name="">Returns:;; An iterator referring to the first element of the container, or if the container is empty the past-the-end value for the container.</string>
    <string name=":657">---</string>
    <string name=":659">end</string>
    <string name="">"```c++ iterator       end() noexcept; const_iterator end() const noexcept; ```"</string>
    <string name="">Returns:;; An iterator which refers to the past-the-end value for the container.</string>
    <string name=":668">---</string>
    <string name=":670">cbegin</string>
    <string name="">```c++ const_iterator cbegin() const noexcept; ```</string>
    <string name="">Returns:;; A `const_iterator` referring to the first element of the container, or if the container is empty the past-the-end value for the container.</string>
    <string name=":678">---</string>
    <string name=":680">cend</string>
    <string name="">```c++ const_iterator cend() const noexcept; ```</string>
    <string name="">Returns:;; A `const_iterator` which refers to the past-the-end value for the container.</string>
    <string name=":688">---</string>
    <string name="">Size and Capacity</string>
    <string name="">empty</string>
    <string name="">```c++ [[nodiscard]] bool empty() const noexcept; ```</string>
    <string name="">Returns:;; `size() == 0`</string>
    <string name=":701">---</string>
    <string name="">size</string>
    <string name="">```c++ size_type size() const noexcept; ```</string>
    <string name="">Returns:;; `std::distance(begin(), end())`</string>
    <string name=":712">---</string>
    <string name="">max_size</string>
    <string name="">```c++ size_type max_size() const noexcept; ```</string>
    <string name="">Returns:;; `size()` of the largest possible container.</string>
    <string name=":723">---</string>
    <string name="">Modifiers</string>
    <string name="">emplace</string>
    <string name="">```c++ template&lt;class... Args&gt; std::pair&lt;iterator, bool&gt; emplace(Args&amp;&amp;... args); ```</string>
    <string name=":732">Inserts an object, constructed with the arguments `args`, in the container if and only if there is no element in the container with an equivalent value.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] into `X` from `args`. Returns:;; The bool component of the return type is true if an insert took place. + + If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent value. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":744">---</string>
    <string name="">emplace_hint</string>
    <string name="">```c++ template&lt;class... Args&gt; iterator emplace_hint(const_iterator position, Args&amp;&amp;... args); ```</string>
    <string name=":751">Inserts an object, constructed with the arguments `args`, in the container if and only if there is no element in the container with an equivalent value.</string>
    <string name="">`position` is a suggestion to where the element should be inserted.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] into `X` from `args`. Returns:;; If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent key. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; The standard is fairly vague on the meaning of the hint. But the only practical way to use it, and the only way that Boost.Unordered supports is to point to an existing element with the same key. + + Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":765">---</string>
    <string name="">Copy Insert</string>
    <string name="">```c++ std::pair&lt;iterator, bool&gt; insert(const value_type&amp; obj); ```</string>
    <string name=":772">Inserts `obj` in the container if and only if there is no element in the container with an equivalent key.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInsertable[CopyInsertable^]. Returns:;; The bool component of the return type is true if an insert took place. + + If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent key. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":784">---</string>
    <string name="">Move Insert</string>
    <string name="">```c++ std::pair&lt;iterator, bool&gt; insert(value_type&amp;&amp; obj); ```</string>
    <string name=":791">Inserts `obj` in the container if and only if there is no element in the container with an equivalent key.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^]. Returns:;; The bool component of the return type is true if an insert took place. + + If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent key. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":803">---</string>
    <string name="">Transparent Insert</string>
    <string name="">```c++ template&lt;class K&gt; std::pair&lt;iterator, bool&gt; insert(K&amp;&amp; k); ```</string>
    <string name=":810">Inserts an element constructed from `std::forward&lt;K&gt;(k)` in the container if and only if there is no element in the container with an equivalent key.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`. Returns:;; The bool component of the return type is true if an insert took place. + + If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent key. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated. + + This overload only participates in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs and neither `iterator` nor `const_iterator` are implicitly convertible from `K`. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":824">---</string>
    <string name="">Copy Insert with Hint</string>
    <string name="">```c++ iterator insert(const_iterator hint, const value_type&amp; obj); ``` Inserts `obj` in the container if and only if there is no element in the container with an equivalent key.</string>
    <string name=":832">`hint` is a suggestion to where the element should be inserted.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInsertable[CopyInsertable^]. Returns:;; If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent key. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; The standard is fairly vague on the meaning of the hint. But the only practical way to use it, and the only way that Boost.Unordered supports is to point to an existing element with the same key. + + Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":844">---</string>
    <string name="">Move Insert with Hint</string>
    <string name="">```c++ iterator insert(const_iterator hint, value_type&amp;&amp; obj); ```</string>
    <string name=":851">Inserts `obj` in the container if and only if there is no element in the container with an equivalent key.</string>
    <string name=":853">`hint` is a suggestion to where the element should be inserted.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^]. Returns:;; If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent key. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; The standard is fairly vague on the meaning of the hint. But the only practical way to use it, and the only way that Boost.Unordered supports is to point to an existing element with the same key. + + Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":865">---</string>
    <string name="">Transparent Insert with Hint</string>
    <string name="">```c++ template&lt;class K&gt; iterator insert(const_iterator hint, K&amp;&amp; k); ```</string>
    <string name=":872">Inserts an element constructed from `std::forward&lt;K&gt;(k)` in the container if and only if there is no element in the container with an equivalent key.</string>
    <string name=":874">`hint` is a suggestion to where the element should be inserted.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`. Returns:;; If an insert took place, then the iterator points to the newly inserted element. Otherwise, it points to the element with equivalent key. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; The standard is fairly vague on the meaning of the hint. But the only practical way to use it, and the only way that Boost.Unordered supports is to point to an existing element with the same key. + + Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated. + + This overload only participates in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs and neither `iterator` nor `const_iterator` are implicitly convertible from `K`. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":888">---</string>
    <string name="">Insert Iterator Range</string>
    <string name="">```c++ template&lt;class InputIterator&gt; void insert(InputIterator first, InputIterator last); ```</string>
    <string name=":895">Inserts a range of elements into the container. Elements are inserted if and only if there is no element in the container with an equivalent key.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] into `X` from `*first`. Throws:;; When inserting a single element, if an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":904">---</string>
    <string name="">Insert Initializer List</string>
    <string name="">```c++ void insert(std::initializer_list&lt;value_type&gt;); ```</string>
    <string name=":911">Inserts a range of elements into the container. Elements are inserted if and only if there is no element in the container with an equivalent key.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInsertable[CopyInsertable^] into the container. Throws:;; When inserting a single element, if an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated.</string>
    <string name=":920">---</string>
    <string name="">Extract by Iterator</string>
    <string name="">```c++ node_type extract(const_iterator position); ```</string>
    <string name="">Removes the element pointed to by `position`.</string>
    <string name="">Returns:;; A `node_type` owning the element. Notes:;; In C++17 a node extracted using this method can be inserted into a compatible `unordered_multiset`, but that is not supported yet.</string>
    <string name=":933">---</string>
    <string name="">Extract by Value</string>
    <string name="">```c++ node_type extract(const key_type&amp; k); template&lt;class K&gt; node_type extract(K&amp;&amp; k); ```</string>
    <string name="">Removes an element with key equivalent to `k`.</string>
    <string name="">Returns:;; A `node_type` owning the element if found, otherwise an empty `node_type`. Throws:;; Only throws an exception if it is thrown by `hasher` or `key_equal`. Notes:;; In C++17 a node extracted using this method can be inserted into a compatible `unordered_multiset`, but that is not supported yet. + + The `template&lt;class K&gt;` overload only participates in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs and neither `iterator` nor `const_iterator` are implicitly convertible from `K`. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":950">---</string>
    <string name="">Insert with `node_handle`</string>
    <string name="">```c++ insert_return_type insert(node_type&amp;&amp; nh); ```</string>
    <string name=":957">If `nh` is empty, has no effect.</string>
    <string name=":959">Otherwise inserts the element owned by `nh` if and only if there is no element in the container with an equivalent key.</string>
    <string name="">Requires:;; `nh` is empty or `nh.get_allocator()` is equal to the container\'s allocator. Returns:;; If `nh` was empty, returns an `insert_return_type` with: `inserted` equal to `false`, `position` equal to `end()` and `node` empty. + + Otherwise if there was already an element with an equivalent key, returns an `insert_return_type` with: `inserted` equal to `false`, `position` pointing to a matching element and `node` contains the node from `nh`. + + Otherwise if the insertion succeeded, returns an `insert_return_type` with: `inserted` equal to `true`, `position` pointing to the newly inserted element and `node` empty. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated. + + In C++17 this can be used to insert a node extracted from a compatible `unordered_multiset`, but that is not supported yet.</string>
    <string name=":975">---</string>
    <string name="">Insert with Hint and `node_handle`</string>
    <string name="">```c++ iterator insert(const_iterator hint, node_type&amp;&amp; nh); ```</string>
    <string name=":982">If `nh` is empty, has no effect.</string>
    <string name=":984">Otherwise inserts the element owned by `nh` if and only if there is no element in the container with an equivalent key.</string>
    <string name="">If there is already an element in the container with an equivalent key has no effect on `nh` (i.e. `nh` still contains the node.)</string>
    <string name=":988">`hint` is a suggestion to where the element should be inserted.</string>
    <string name="">Requires:;; `nh` is empty or `nh.get_allocator()` is equal to the container\'s allocator. Returns:;; If `nh` was empty returns `end()`. + + If there was already an element in the container with an equivalent key returns an iterator pointing to that. + + Otherwise returns an iterator pointing to the newly inserted element. Throws:;; If an exception is thrown by an operation other than a call to `hasher` the function has no effect. Notes:;; The standard is fairly vague on the meaning of the hint. But the only practical way to use it, and the only way that Boost.Unordered supports is to point to an existing element with the same key. + + Can invalidate iterators, but only if the insert causes the load factor to be greater to or equal to the maximum load factor. + + Pointers and references to elements are never invalidated. + + This can be used to insert a node extracted from a compatible `unordered_multiset`.</string>
    <string name=":1006">---</string>
    <string name="">Erase by Position</string>
    <string name="">```c++ iterator erase(iterator position); iterator erase(const_iterator position); ```</string>
    <string name=":1015">Erase the element pointed to by `position`.</string>
    <string name="">Returns:;; The iterator following `position` before the erasure. Throws:;; Only throws an exception if it is thrown by `hasher` or `key_equal`. Notes:;; In older versions this could be inefficient because it had to search through several buckets to find the position of the returned iterator. The data structure has been changed so that this is no longer the case, and the alternative erase methods have been deprecated.</string>
    <string name=":1022">---</string>
    <string name="">Erase by Value</string>
    <string name="">```c++ size_type erase(const key_type&amp; k); template&lt;class K&gt; size_type erase(K&amp;&amp; k); ```</string>
    <string name="">Erase all elements with key equivalent to `k`.</string>
    <string name="">Returns:;; The number of elements erased. Throws:;; Only throws an exception if it is thrown by `hasher` or `key_equal`. Notes:;; The `template&lt;class K&gt;` overload only participates in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs and neither `iterator` nor `const_iterator` are implicitly convertible from `K`. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":1037">---</string>
    <string name="">Erase Range</string>
    <string name="">```c++ iterator erase(const_iterator first, const_iterator last); ```</string>
    <string name="">Erases the elements in the range from `first` to `last`.</string>
    <string name="">Returns:;; The iterator following the erased elements - i.e. `last`. Throws:;; Only throws an exception if it is thrown by `hasher` or `key_equal`. + + In this implementation, this overload doesn\'t call either function object\'s methods so it is no throw, but this might not be true in other implementations.</string>
    <string name=":1053">---</string>
    <string name="">quick_erase</string>
    <string name="">```c++ void quick_erase(const_iterator position); ```</string>
    <string name=":1060">Erase the element pointed to by `position`.</string>
    <string name=":1063">Throws:;; Only throws an exception if it is thrown by `hasher` or `key_equal`. + + In this implementation, this overload doesn\'t call either function object\'s methods so it is no throw, but this might not be true in other implementations. Notes:;; This method was implemented because returning an iterator to the next element from erase was expensive, but the container has been redesigned so that is no longer the case. So this method is now deprecated.</string>
    <string name=":1068">---</string>
    <string name="">erase_return_void</string>
    <string name="">```c++ void erase_return_void(const_iterator position); ```</string>
    <string name=":1075">Erase the element pointed to by `position`.</string>
    <string name=":1078">Throws:;; Only throws an exception if it is thrown by `hasher` or `key_equal`. + + In this implementation, this overload doesn\'t call either function object\'s methods so it is no throw, but this might not be true in other implementations. Notes:;; This method was implemented because returning an iterator to the next element from erase was expensive, but the container has been redesigned so that is no longer the case. So this method is now deprecated.</string>
    <string name=":1083">---</string>
    <string name="">swap</string>
    <string name="">```c++ void swap(unordered_set&amp; other) noexcept(boost::allocator_traits&lt;Allocator&gt;::is_always_equal::value &amp;&amp; boost::is_nothrow_swappable_v&lt;Hash&gt; &amp;&amp; boost::is_nothrow_swappable_v&lt;Pred&gt;); ```</string>
    <string name="">Swaps the contents of the container with the parameter.</string>
    <string name=":1095">If `Allocator::propagate_on_container_swap` is declared and `Allocator::propagate_on_container_swap::value` is `true` then the containers\' allocators are swapped. Otherwise, swapping with unequal allocators results in undefined behavior.</string>
    <string name="">Throws:;; Doesn\'t throw an exception unless it is thrown by the copy constructor or copy assignment operator of `key_equal` or `hasher`. Notes:;; The exception specifications aren\'t quite the same as the C++11 standard, as the equality predicate and hash function are swapped using their copy constructors.</string>
    <string name=":1101">---</string>
    <string name="">clear</string>
    <string name="">```c++ void clear() noexcept; ```</string>
    <string name="">Erases all elements in the container.</string>
    <string name="">Postconditions:;; `size() == 0` Throws:;; Never throws an exception.</string>
    <string name=":1114">---</string>
    <string name="">merge</string>
    <string name="">```c++ template&lt;class H2, class P2&gt; void merge(unordered_set&lt;Key, H2, P2, Allocator&gt;&amp; source); template&lt;class H2, class P2&gt; void merge(unordered_set&lt;Key, H2, P2, Allocator&gt;&amp;&amp; source); template&lt;class H2, class P2&gt; void merge(unordered_multiset&lt;Key, H2, P2, Allocator&gt;&amp; source); template&lt;class H2, class P2&gt; void merge(unordered_multiset&lt;Key, H2, P2, Allocator&gt;&amp;&amp; source); ```</string>
    <string name="">Attempt to \"merge\" two containers by iterating `source` and extracting any node in `source` that is not contained in `*this` and then inserting it into `*this`.</string>
    <string name="">Because `source` can have a different hash function and key equality predicate, the key of each node in `source` is rehashed using `this\\-&gt;hash_function()` and then, if required, compared using `this\\-&gt;key_eq()`.</string>
    <string name="">The behavior of this function is undefined if `this\\-&gt;get_allocator() != source.get_allocator()`.</string>
    <string name="">This function does not copy or move any elements and instead simply relocates the nodes from `source` into `*this`.</string>
    <string name="">Notes:;; + --</string>
    <string name="">Pointers and references to transferred elements remain valid.</string>
    <string name="">Invalidates iterators to transferred elements.</string>
    <string name="">Invalidates iterators belonging to `*this`.</string>
    <string name="">Iterators to non-transferred elements in `source` remain valid.</string>
    <string name="">--</string>
    <string name=":1149">---</string>
    <string name="">Observers</string>
    <string name="">get_allocator</string>
    <string name="">``` allocator_type get_allocator() const; ```</string>
    <string name=":1158">---</string>
    <string name="">hash_function</string>
    <string name="">``` hasher hash_function() const; ```</string>
    <string name="">Returns:;; The container\'s hash function.</string>
    <string name=":1168">---</string>
    <string name="">key_eq</string>
    <string name="">``` key_equal key_eq() const; ```</string>
    <string name="">Returns:;; The container\'s key equality predicate</string>
    <string name=":1179">---</string>
    <string name="">Lookup</string>
    <string name="">find</string>
    <string name="">"```c++ iterator         find(const key_type&amp; k); const_iterator   find(const key_type&amp; k) const; template&lt;class K&gt; iterator       find(const K&amp; k); template&lt;class K&gt; const_iterator find(const K&amp; k) const; template&lt;typename CompatibleKey, typename CompatibleHash, typename CompatiblePredicate&gt; iterator       find(CompatibleKey const&amp; k, CompatibleHash const&amp; hash, CompatiblePredicate const&amp; eq); template&lt;typename CompatibleKey, typename CompatibleHash, typename CompatiblePredicate&gt; const_iterator find(CompatibleKey const&amp; k, CompatibleHash const&amp; hash, CompatiblePredicate const&amp; eq) const; ```"</string>
    <string name="">Returns:;; An iterator pointing to an element with key equivalent to `k`, or `b.end()` if no such element exists. Notes:;; The templated overloads containing `CompatibleKey`, `CompatibleHash` and `CompatiblePredicate` are non-standard extensions which allow you to use a compatible hash function and equality predicate for a key of a different type in order to avoid an expensive type cast. In general, its use is not encouraged and instead the `K` member function templates should be used. + + The `template&lt;class K&gt;` overloads only participate in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":1205">---</string>
    <string name="">count</string>
    <string name="">"```c++ size_type        count(const key_type&amp; k) const; template&lt;class K&gt; size_type      count(const K&amp; k) const; ```"</string>
    <string name="">Returns:;; The number of elements with key equivalent to `k`. Notes:;; The `template&lt;class K&gt;` overload only participates in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":1218">---</string>
    <string name="">contains</string>
    <string name="">"```c++ bool             contains(const key_type&amp; k) const; template&lt;class K&gt; bool           contains(const K&amp; k) const; ```"</string>
    <string name="">Returns:;; A boolean indicating whether or not there is an element with key equal to `key` in the container Notes:;; The `template&lt;class K&gt;` overload only participates in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":1231">---</string>
    <string name="">equal_range</string>
    <string name="">"```c++ std::pair&lt;iterator, iterator&gt;               equal_range(const key_type&amp; k); std::pair&lt;const_iterator, const_iterator&gt;   equal_range(const key_type&amp; k) const; template&lt;class K&gt; std::pair&lt;iterator, iterator&gt;             equal_range(const K&amp; k); template&lt;class K&gt; std::pair&lt;const_iterator, const_iterator&gt; equal_range(const K&amp; k) const; ```"</string>
    <string name="">Returns:;; A range containing all elements with key equivalent to `k`. If the container doesn\'t contain any such elements, returns `std::make_pair(b.end(), b.end())`. Notes:;; The `template&lt;class K&gt;` overloads only participate in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":1247">---</string>
    <string name="">Bucket Interface</string>
    <string name="">bucket_count</string>
    <string name="">```c++ size_type bucket_count() const noexcept; ```</string>
    <string name="">Returns:;; The number of buckets.</string>
    <string name=":1259">---</string>
    <string name="">max_bucket_count</string>
    <string name="">```c++ size_type max_bucket_count() const noexcept; ```</string>
    <string name="">Returns:;; An upper bound on the number of buckets.</string>
    <string name=":1269">---</string>
    <string name="">bucket_size</string>
    <string name="">```c++ size_type bucket_size(size_type n) const; ```</string>
    <string name="">Requires:;; `n &lt; bucket_count()` Returns:;; The number of elements in bucket `n`.</string>
    <string name=":1280">---</string>
    <string name="">bucket</string>
    <string name="">```c++ size_type bucket(const key_type&amp; k) const; template&lt;class K&gt; size_type bucket(const K&amp; k) const; ```</string>
    <string name="">Returns:;; The index of the bucket which would contain an element with key `k`. Postconditions:;; The return value is less than `bucket_count()`. Notes:;; The `template&lt;class K&gt;` overload only participates in overload resolution if `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs. The library assumes that `Hash` is callable with both `K` and `Key` and that `Pred` is transparent. This enables heterogeneous lookup which avoids the cost of instantiating an instance of the `Key` type.</string>
    <string name=":1293">---</string>
    <string name=":1295">begin</string>
    <string name="">```c++ local_iterator begin(size_type n); const_local_iterator begin(size_type n) const; ```</string>
    <string name="">Requires:;; `n` shall be in the range `[0, bucket_count())`. Returns:;; A local iterator pointing the first element in the bucket with index `n`.</string>
    <string name=":1306">---</string>
    <string name=":1308">end</string>
    <string name="">```c++ local_iterator end(size_type n); const_local_iterator end(size_type n) const; ```</string>
    <string name="">Requires:;; `n` shall be in the range `[0, bucket_count())`. Returns:;; A local iterator pointing the \'one past the end\' element in the bucket with index `n`.</string>
    <string name=":1318">---</string>
    <string name=":1320">cbegin</string>
    <string name="">```c++ const_local_iterator cbegin(size_type n) const; ```</string>
    <string name="">Requires:;; `n` shall be in the range `[0, bucket_count())`. Returns:;; A constant local iterator pointing the first element in the bucket with index `n`.</string>
    <string name=":1329">---</string>
    <string name=":1331">cend</string>
    <string name="">```c++ const_local_iterator cend(size_type n) const; ```</string>
    <string name="">Requires:;; `n` shall be in the range `[0, bucket_count())`. Returns:;; A constant local iterator pointing the \'one past the end\' element in the bucket with index `n`.</string>
    <string name=":1340">---</string>
    <string name="">Hash Policy</string>
    <string name="">load_factor</string>
    <string name="">```c++ float load_factor() const noexcept; ```</string>
    <string name="">Returns:;; The average number of elements per bucket.</string>
    <string name=":1352">---</string>
    <string name="">max_load_factor</string>
    <string name="">```c++ float max_load_factor() const noexcept; ```</string>
    <string name="">Returns:;; Returns the current maximum load factor.</string>
    <string name=":1363">---</string>
    <string name="">Set max_load_factor</string>
    <string name="">```c++ void max_load_factor(float z); ```</string>
    <string name="">Effects:;; Changes the container\'s maximum load factor, using `z` as a hint.</string>
    <string name=":1373">---</string>
    <string name="">rehash</string>
    <string name="">```c++ void rehash(size_type n); ```</string>
    <string name="">Changes the number of buckets so that there are at least `n` buckets, and so that the load factor is less than or equal to the maximum load factor. When applicable, this will either grow or shrink the `bucket_count()` associated with the container.</string>
    <string name="">When `size() == 0`, `rehash(0)` will deallocate the underlying buckets array.</string>
    <string name=":1384">Invalidates iterators, and changes the order of elements. Pointers and references to elements are not invalidated.</string>
    <string name=":1387">Throws:;; The function has no effect if an exception is thrown, unless it is thrown by the container\'s hash function or comparison function.</string>
    <string name=":1389">---</string>
    <string name="">reserve</string>
    <string name="">```c++ void reserve(size_type n); ```</string>
    <string name="">Equivalent to `a.rehash(ceil(n / a.max_load_factor()))`, or `a.rehash(1)` if `n &gt; 0` and `a.max_load_factor() == std::numeric_limits&lt;float&gt;::infinity()`.</string>
    <string name="">Similar to `rehash`, this function can be used to grow or shrink the number of buckets in the container.</string>
    <string name=":1400">Invalidates iterators, and changes the order of elements. Pointers and references to elements are not invalidated.</string>
    <string name=":1403">Throws:;; The function has no effect if an exception is thrown, unless it is thrown by the container\'s hash function or comparison function.</string>
    <string name="">Deduction Guides</string>
    <string name="">A deduction guide will not participate in overload resolution if any of the following are true:</string>
    <string name="">- It has an `InputIterator` template parameter and a type that does not qualify as an input iterator is deduced for that parameter. - It has an `Allocator` template parameter and a type that does not qualify as an allocator is deduced for that parameter. - It has a `Hash` template parameter and an integral type or a type that qualifies as an allocator is deduced for that parameter. - It has a `Pred` template parameter and a type that qualifies as an allocator is deduced for that parameter.</string>
    <string name="">A `size_­type` parameter type in a deduction guide refers to the `size_­type` member type of the container type deduced by the deduction guide. Its default value coincides with the default value of the constructor selected.</string>
    <string name="">__iter-value-type__</string>
    <string name="">Equality Comparisons</string>
    <string name="">operator</string>
    <string name="">```c++ template&lt;class Key, class Hash, class Pred, class Alloc&gt; bool operator==(const unordered_set&lt;Key, Hash, Pred, Alloc&gt;&amp; x, const unordered_set&lt;Key, Hash, Pred, Alloc&gt;&amp; y); ```</string>
    <string name="">Return `true` if `x.size() == y.size()` and for every element in `x`, there is an element in `y` with the same key, with an equal value (using `operator==` to compare the value types).</string>
    <string name=":1438">Notes:;; Behavior is undefined if the two containers don\'t have equivalent equality predicates.</string>
    <string name=":1440">---</string>
    <string name="">operator!</string>
    <string name="">```c++ template&lt;class Key, class Hash, class Pred, class Alloc&gt; bool operator!=(const unordered_set&lt;Key, Hash, Pred, Alloc&gt;&amp; x, const unordered_set&lt;Key, Hash, Pred, Alloc&gt;&amp; y); ```</string>
    <string name="">Return `false` if `x.size() == y.size()` and for every element in `x`, there is an element in `y` with the same key, with an equal value (using `operator==` to compare the value types).</string>
    <string name=":1452">Notes:;; Behavior is undefined if the two containers don\'t have equivalent equality predicates.</string>
    <string name=":1454">---</string>
    <string name="">Swap</string>
    <string name="">```c++ template&lt;class Key, class Hash, class Pred, class Alloc&gt; void swap(unordered_set&lt;Key, Hash, Pred, Alloc&gt;&amp; x, unordered_set&lt;Key, Hash, Pred, Alloc&gt;&amp; y) noexcept(noexcept(x.swap(y))); ```</string>
    <string name="">Swaps the contents of `x` and `y`.</string>
    <string name=":1466">If `Allocator::propagate_on_container_swap` is declared and `Allocator::propagate_on_container_swap::value` is `true` then the containers\' allocators are swapped. Otherwise, swapping with unequal allocators results in undefined behavior.</string>
    <string name="">Effects:;; `x.swap(y)` Throws:;; Doesn\'t throw an exception unless it is thrown by the copy constructor or copy assignment operator of `key_equal` or `hasher`. Notes:;; The exception specifications aren\'t quite the same as the C++11 standard, as the equality predicate and hash function are swapped using their copy constructors.</string>
    <string name=":1473">---</string>
    <string name="">erase_if</string>
    <string name="">```c++ template&lt;class K, class H, class P, class A, class Predicate&gt; typename unordered_set&lt;K, H, P, A&gt;::size_type erase_if(unordered_set&lt;K, H, P, A&gt;&amp; c, Predicate pred); ```</string>
    <string name="">Traverses the container `c` and removes all elements for which the supplied predicate returns `true`.</string>
    <string name="">Returns:;; The number of erased elements. Notes:;; Equivalent to: + + ```c++ auto original_size = c.size(); for (auto i = c.begin(), last = c.end(); i != last; ) { if (pred(*i)) { i = c.erase(i); } else { ++i; } } return original_size - c.size(); ```</string>
    <string name="">Serialization</string>
    <string name="">``unordered_set``s can be archived/retrieved by means of link:../../../../../serialization/index.html[Boost.Serialization^] using the API provided by this library. Both regular and XML archives are supported.</string>
    <string name="">Saving an unordered_set to an archive</string>
    <string name="">Saves all the elements of an `unordered_set` `x` to an archive (XML archive) `ar`.</string>
    <string name="">Requires:;; `value_type` is serializable (XML serializable), and it supports Boost.Serialization `save_construct_data`/`load_construct_data` protocol (automatically suported by https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^] types).</string>
    <string name=":1517">---</string>
    <string name="">Loading an unordered_set from an archive</string>
    <string name="">Deletes all preexisting elements of an `unordered_set` `x` and inserts from an archive (XML archive) `ar` restored copies of the elements of the original `unordered_set` `other` saved to the storage read by `ar`.</string>
    <string name="">Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^]. `x.key_equal()` is functionally equivalent to `other.key_equal()`. Note:;; If the archive was saved using a release of Boost prior to Boost 1.84, the configuration macro `BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0` has to be globally defined for this operation to succeed; otherwise, an exception is thrown.</string>
    <string name=":1532">---</string>
    <string name="">Saving an iterator/const_iterator to an archive</string>
    <string name="">Saves the positional information of an `iterator` (`const_iterator`) `it` to an archive (XML archive) `ar`. `it` can be and `end()` iterator.</string>
    <string name="">Requires:;; The `unordered_set` `x` pointed to by `it` has been previously saved to `ar`, and no modifying operations have been issued on `x` between saving of `x` and saving of `it`.</string>
    <string name=":1544">---</string>
    <string name="">Loading an iterator/const_iterator from an archive</string>
    <string name="">Makes an `iterator` (`const_iterator`) `it` point to the restored position of the original `iterator` (`const_iterator`) saved to the storage read by an archive (XML archive) `ar`.</string>
    <string name="">Requires:;; If `x` is the `unordered_set` `it` points to, no modifying operations have been issued on `x` between loading of `x` and loading of `it`.</string>
</resources>
