mirror of
https://github.com/boostorg/unordered.git
synced 2025-05-09 23:23:59 +00:00
fix broken cross-references
This commit is contained in:
parent
bebd8ccc50
commit
d5faa1b5cf
@ -15,7 +15,7 @@
|
||||
** xref:reference/unordered_set.adoc[unordered_set]
|
||||
** xref:reference/unordered_multiset.adoc[unordered_multiset]
|
||||
** xref:reference/hash_traits.adoc[hash_traits]
|
||||
** xref:reference/stats.adoc[stats]
|
||||
** xref:reference/stats.adoc[Statistics]
|
||||
** xref:reference/unordered_flat_map.adoc[unordered_flat_map]
|
||||
** xref:reference/unordered_flat_set.adoc[unordered_flat_set]
|
||||
** xref:reference/unordered_node_map.adoc[unordered_node_map]
|
||||
|
@ -24,15 +24,15 @@ predicate `Pred`). If the hash function has worked well the elements will be
|
||||
evenly distributed amongst the buckets so only a small number of elements will
|
||||
need to be examined.
|
||||
|
||||
There is <<hash_equality, more information on hash functions and
|
||||
equality predicates in the next section>>.
|
||||
There is xref:hash_equality.adoc#hash_equality[more information on hash functions and
|
||||
equality predicates in the next section].
|
||||
|
||||
You can see in the diagram that `A` & `D` have been placed in the same bucket.
|
||||
When looking for elements in this bucket up to 2 comparisons are made, making
|
||||
the search slower. This is known as a *collision*. To keep things fast we try to
|
||||
keep collisions to a minimum.
|
||||
|
||||
If instead of `boost::unordered_set` we had used <<unordered_flat_set,`boost::unordered_flat_set`>>, the
|
||||
If instead of `boost::unordered_set` we had used `xref:reference/unordered_flat_set.adoc[boost::unordered_flat_set]`, the
|
||||
diagram would look as follows:
|
||||
|
||||
image::buckets-oa.png[]
|
||||
|
@ -150,10 +150,10 @@ element already exists):
|
||||
----
|
||||
|
||||
Consult the references of
|
||||
`xref:reference/concurrent_node_set#concurrent_node_set[boost::concurrent_node_set]`,
|
||||
`xref:reference/concurrent_node_map#concurrent_flat_map[boost::concurrent_node_map]`,
|
||||
`xref:reference/concurrent_flat_set#concurrent_flat_set[boost::concurrent_flat_set]` and
|
||||
`xref:reference/concurrent_flat_map#concurrent_flat_map[boost::concurrent_flat_map]`
|
||||
`xref:reference/concurrent_node_set.adoc#concurrent_node_set[boost::concurrent_node_set]`,
|
||||
`xref:reference/concurrent_node_map.adoc#concurrent_node_map[boost::concurrent_node_map]`,
|
||||
`xref:reference/concurrent_flat_set.adoc#concurrent_flat_set[boost::concurrent_flat_set]` and
|
||||
`xref:reference/concurrent_flat_map.adoc#concurrent_flat_map[boost::concurrent_flat_map]`
|
||||
for the complete list of visitation-enabled operations.
|
||||
|
||||
== Whole-Table Visitation
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
While the associative containers use an ordering relation to specify how the
|
||||
elements are stored, the unordered associative containers use an equality
|
||||
predicate and a hash function. For example, <<unordered_map,boost::unordered_map>>
|
||||
predicate and a hash function. For example, `xref:reference/unordered_map.adoc[boost::unordered_map]`
|
||||
is declared as:
|
||||
|
||||
```cpp
|
||||
|
@ -96,5 +96,4 @@ Boost.Unordered uses link:../../../container_hash/index.html[boost::hash^] it al
|
||||
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
|
||||
<<hash_equality,Equality Predicates and Hash Functions>> section
|
||||
for more details.
|
||||
xref:hash_equality.adoc#hash_equality[Equality Predicates and Hash Functions], section for more details.
|
||||
|
@ -6,7 +6,7 @@
|
||||
* xref:reference/unordered_set.adoc[unordered_set]
|
||||
* xref:reference/unordered_multiset.adoc[unordered_multiset]
|
||||
* xref:reference/hash_traits.adoc[hash_traits]
|
||||
* xref:reference/stats.adoc[stats]
|
||||
* xref:reference/stats.adoc[Statistics]
|
||||
* xref:reference/unordered_flat_map.adoc[unordered_flat_map]
|
||||
* xref:reference/unordered_flat_set.adoc[unordered_flat_set]
|
||||
* xref:reference/unordered_node_map.adoc[unordered_node_map]
|
||||
|
@ -50,7 +50,7 @@ namespace boost {
|
||||
using size_type = std::size_t;
|
||||
using difference_type = std::ptrdiff_t;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_flat_map_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_flat_map_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// constants
|
||||
static constexpr size_type xref:#concurrent_flat_map_constants[bulk_visit_size] = _implementation-defined_;
|
||||
@ -391,7 +391,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -456,7 +456,7 @@ this macro.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the table. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the table. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -614,7 +614,7 @@ If statistics are xref:concurrent_flat_map_boost_unordered_enable_stats[enabled]
|
||||
transfers the internal statistical information from `other` and calls `other.reset_stats()`.
|
||||
|
||||
[horizontal]
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
|
||||
---
|
||||
|
||||
@ -749,7 +749,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
concurrent_flat_map& operator=(concurrent_flat_map const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -840,7 +840,7 @@ to increase further.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `FwdIterator` is a https://en.cppreference.com/w/cpp/named_req/ForwardIterator[LegacyForwardIterator^]
|
||||
({cpp}11 to {cpp}17),
|
||||
({cpp}11 to {cpp}17),
|
||||
or satisfies https://en.cppreference.com/w/cpp/iterator/forward_iterator[std::forward_iterator^] ({cpp}20 and later).
|
||||
For `K` = `std::iterator_traits<FwdIterator>::value_type`, either `K` is `key_type` or
|
||||
else `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs.
|
||||
@ -1017,7 +1017,7 @@ Inserts `obj` in the table if and only if there is no element in the table with
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^].
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; Invalidates pointers and references to elements if a rehashing is issued. +
|
||||
+
|
||||
@ -1037,7 +1037,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1053,7 +1053,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1135,7 +1135,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1152,7 +1152,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1239,7 +1239,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1258,7 +1258,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1708,7 +1708,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_flat_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_flat_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1719,7 +1719,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_flat_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_flat_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1748,7 +1748,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-key-type__ = std::remove_const_t<
|
||||
std::tuple_element_t<0, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::tuple_element_t<0, xref:#concurrent_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-mapped-type__
|
||||
@ -1756,7 +1756,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-mapped-type__ =
|
||||
std::tuple_element_t<1, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
std::tuple_element_t<1, xref:#concurrent_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-to-alloc-type__
|
||||
@ -1764,8 +1764,8 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-to-alloc-type__ = std::pair<
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#concurrent_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#concurrent_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
=== Equality Comparisons
|
||||
@ -1833,7 +1833,7 @@ c.xref:#concurrent_flat_map_erase_if[erase_if](pred);
|
||||
|
||||
``concurrent_flat_map``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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an concurrent_flat_map to an archive
|
||||
|
||||
@ -1844,7 +1844,7 @@ Requires:;; `std::remove_const<key_type>::type` and `std::remove_const<mapped_ty
|
||||
are serializable (XML serializable), and they do support Boost.Serialization
|
||||
`save_construct_data`/`load_construct_data` protocol (automatically suported by
|
||||
https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^]
|
||||
types).
|
||||
types).
|
||||
Concurrency:;; Blocking on `x`.
|
||||
|
||||
---
|
||||
|
@ -45,7 +45,7 @@ namespace boost {
|
||||
using size_type = std::size_t;
|
||||
using difference_type = std::ptrdiff_t;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_flat_set_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_flat_set_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// constants
|
||||
static constexpr size_type xref:#concurrent_flat_set_constants[bulk_visit_size] = _implementation-defined_;
|
||||
@ -337,7 +337,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -402,7 +402,7 @@ this macro.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the table. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the table. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -560,7 +560,7 @@ If statistics are xref:concurrent_flat_set_boost_unordered_enable_stats[enabled]
|
||||
transfers the internal statistical information from `other` and calls `other.reset_stats()`.
|
||||
|
||||
[horizontal]
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
|
||||
---
|
||||
|
||||
@ -695,7 +695,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
concurrent_flat_set& operator=(concurrent_flat_set const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -783,7 +783,7 @@ to increase further.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `FwdIterator` is a https://en.cppreference.com/w/cpp/named_req/ForwardIterator[LegacyForwardIterator^]
|
||||
({cpp}11 to {cpp}17),
|
||||
({cpp}11 to {cpp}17),
|
||||
or satisfies https://en.cppreference.com/w/cpp/iterator/forward_iterator[std::forward_iterator^] ({cpp}20 and later).
|
||||
For `K` = `std::iterator_traits<FwdIterator>::value_type`, either `K` is `key_type` or
|
||||
else `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs.
|
||||
@ -951,7 +951,7 @@ Inserts `obj` in the table if and only if there is no element in the table with
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^].
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; Invalidates pointers and references to elements if a rehashing is issued.
|
||||
|
||||
@ -966,7 +966,7 @@ Inserts an element constructed from `std::forward<K>(k)` in the container if and
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; Invalidates pointers and references to elements if a rehashing is issued. +
|
||||
+
|
||||
@ -986,7 +986,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1002,7 +1002,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1070,7 +1070,7 @@ Otherwise, invokes `f` with a const reference to the equivalent element.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; Invalidates pointers and references to elements if a rehashing is issued. +
|
||||
+
|
||||
@ -1093,7 +1093,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1110,7 +1110,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1184,7 +1184,7 @@ Otherwise, invokes `f2` with a const reference to the equivalent element.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; Invalidates pointers and references to elements if a rehashing is issued. +
|
||||
+
|
||||
@ -1207,7 +1207,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1226,7 +1226,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1508,7 +1508,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_flat_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_flat_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1519,7 +1519,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_flat_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_flat_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1608,7 +1608,7 @@ c.xref:#concurrent_flat_set_erase_if[erase_if](pred);
|
||||
|
||||
``concurrent_flat_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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an concurrent_flat_set to an archive
|
||||
|
||||
@ -1618,7 +1618,7 @@ Saves all the elements of a `concurrent_flat_set` `x` to an archive (XML archive
|
||||
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).
|
||||
types).
|
||||
Concurrency:;; Blocking on `x`.
|
||||
|
||||
---
|
||||
|
@ -53,7 +53,7 @@ namespace boost {
|
||||
using node_type = _implementation-defined_;
|
||||
using insert_return_type = _implementation-defined_;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_node_map_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_node_map_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// constants
|
||||
static constexpr size_type xref:#concurrent_node_map_constants[bulk_visit_size] = _implementation-defined_;
|
||||
@ -408,7 +408,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -473,7 +473,7 @@ this macro.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the table. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the table. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -485,7 +485,7 @@ that this option decreases the overall performance of many operations.
|
||||
typedef _implementation-defined_ node_type;
|
||||
----
|
||||
|
||||
A class for holding extracted table elements, modelling
|
||||
A class for holding extracted table elements, modelling
|
||||
https://en.cppreference.com/w/cpp/container/node_handle[NodeHandle].
|
||||
|
||||
---
|
||||
@ -666,7 +666,7 @@ If statistics are xref:concurrent_node_map_boost_unordered_enable_stats[enabled]
|
||||
transfers the internal statistical information from `other` and calls `other.reset_stats()`.
|
||||
|
||||
[horizontal]
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
|
||||
---
|
||||
|
||||
@ -801,7 +801,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
concurrent_node_map& operator=(concurrent_node_map const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -892,7 +892,7 @@ to increase further.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `FwdIterator` is a https://en.cppreference.com/w/cpp/named_req/ForwardIterator[LegacyForwardIterator^]
|
||||
({cpp}11 to {cpp}17),
|
||||
({cpp}11 to {cpp}17),
|
||||
or satisfies https://en.cppreference.com/w/cpp/iterator/forward_iterator[std::forward_iterator^] ({cpp}20 and later).
|
||||
For `K` = `std::iterator_traits<FwdIterator>::value_type`, either `K` is `key_type` or
|
||||
else `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs.
|
||||
@ -1065,7 +1065,7 @@ Inserts `obj` in the table if and only if there is no element in the table with
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^].
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; A call of the form `insert(x)`, where `x` is equally convertible to both `value_type&&` and `init_type&&`, is not ambiguous and selects the `init_type` overload.
|
||||
|
||||
@ -1083,7 +1083,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1099,7 +1099,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1194,7 +1194,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1211,7 +1211,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1313,7 +1313,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1332,7 +1332,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1824,7 +1824,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_node_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_node_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1835,7 +1835,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_node_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_node_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1864,7 +1864,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-key-type__ = std::remove_const_t<
|
||||
std::tuple_element_t<0, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::tuple_element_t<0, xref:#concurrent_node_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-mapped-type__
|
||||
@ -1872,7 +1872,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-mapped-type__ =
|
||||
std::tuple_element_t<1, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
std::tuple_element_t<1, xref:#concurrent_node_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-to-alloc-type__
|
||||
@ -1880,8 +1880,8 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-to-alloc-type__ = std::pair<
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#concurrent_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#concurrent_node_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#concurrent_node_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
=== Equality Comparisons
|
||||
@ -1949,7 +1949,7 @@ c.xref:#concurrent_node_map_erase_if[erase_if](pred);
|
||||
|
||||
``concurrent_node_map``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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an concurrent_node_map to an archive
|
||||
|
||||
@ -1960,7 +1960,7 @@ Requires:;; `std::remove_const<key_type>::type` and `std::remove_const<mapped_ty
|
||||
are serializable (XML serializable), and they do support Boost.Serialization
|
||||
`save_construct_data`/`load_construct_data` protocol (automatically suported by
|
||||
https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^]
|
||||
types).
|
||||
types).
|
||||
Concurrency:;; Blocking on `x`.
|
||||
|
||||
---
|
||||
|
@ -48,7 +48,7 @@ namespace boost {
|
||||
using node_type = _implementation-defined_;
|
||||
using insert_return_type = _implementation-defined_;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_node_set_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:concurrent_node_set_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// constants
|
||||
static constexpr size_type xref:#concurrent_node_set_constants[bulk_visit_size] = _implementation-defined_;
|
||||
@ -354,7 +354,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -419,7 +419,7 @@ this macro.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the table. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the table. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -431,7 +431,7 @@ that this option decreases the overall performance of many operations.
|
||||
typedef _implementation-defined_ node_type;
|
||||
----
|
||||
|
||||
A class for holding extracted table elements, modelling
|
||||
A class for holding extracted table elements, modelling
|
||||
https://en.cppreference.com/w/cpp/container/node_handle[NodeHandle].
|
||||
|
||||
---
|
||||
@ -610,7 +610,7 @@ If statistics are xref:concurrent_node_set_boost_unordered_enable_stats[enabled]
|
||||
transfers the internal statistical information from `other` and calls `other.reset_stats()`.
|
||||
|
||||
[horizontal]
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
Complexity:;; O(`bucket_count()`)
|
||||
|
||||
---
|
||||
|
||||
@ -745,7 +745,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
concurrent_node_set& operator=(concurrent_node_set const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -833,7 +833,7 @@ to increase further.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `FwdIterator` is a https://en.cppreference.com/w/cpp/named_req/ForwardIterator[LegacyForwardIterator^]
|
||||
({cpp}11 to {cpp}17),
|
||||
({cpp}11 to {cpp}17),
|
||||
or satisfies https://en.cppreference.com/w/cpp/iterator/forward_iterator[std::forward_iterator^] ({cpp}20 and later).
|
||||
For `K` = `std::iterator_traits<FwdIterator>::value_type`, either `K` is `key_type` or
|
||||
else `Hash::is_transparent` and `Pred::is_transparent` are valid member typedefs.
|
||||
@ -999,7 +999,7 @@ Inserts `obj` in the table if and only if there is no element in the table with
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/MoveInsertable[MoveInsertable^].
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
|
||||
---
|
||||
@ -1013,7 +1013,7 @@ Inserts an element constructed from `std::forward<K>(k)` in the container if and
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; This 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.
|
||||
|
||||
@ -1031,7 +1031,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1047,7 +1047,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1130,7 +1130,7 @@ Otherwise, invokes `f` with a const reference to the equivalent element.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; These 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.
|
||||
|
||||
@ -1151,7 +1151,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1168,7 +1168,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1259,7 +1259,7 @@ Otherwise, invokes `f2` with a const reference to the equivalent element.
|
||||
|
||||
[horizontal]
|
||||
Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/EmplaceConstructible[EmplaceConstructible^] from `k`.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Returns:;; `true` if an insert took place.
|
||||
Concurrency:;; Blocking on rehashing of `*this`.
|
||||
Notes:;; These 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.
|
||||
|
||||
@ -1280,7 +1280,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1299,7 +1299,7 @@ Equivalent to
|
||||
-----
|
||||
|
||||
[horizontal]
|
||||
Returns:;; The number of elements inserted.
|
||||
Returns:;; The number of elements inserted.
|
||||
|
||||
---
|
||||
|
||||
@ -1631,7 +1631,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_node_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_node_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1642,7 +1642,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:concurrent_node_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:concurrent_node_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1731,7 +1731,7 @@ c.xref:#concurrent_node_set_erase_if[erase_if](pred);
|
||||
|
||||
``concurrent_node_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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an concurrent_node_set to an archive
|
||||
|
||||
@ -1741,7 +1741,7 @@ Saves all the elements of a `concurrent_node_set` `x` to an archive (XML archive
|
||||
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).
|
||||
types).
|
||||
Concurrency:;; Blocking on `x`.
|
||||
|
||||
---
|
||||
|
@ -30,7 +30,7 @@ struct xref:stats_lookup_stats_type[__lookup-stats-type__]
|
||||
xref:#stats_stats_summary_type[__stats-summary-type__] num_comparisons;
|
||||
};
|
||||
|
||||
struct xref:stats_stats_type[__stats-type__]
|
||||
struct xref:reference/stats.adoc#stats_stats_type[__stats-type__]
|
||||
{
|
||||
xref:#stats_insertion_stats_type[__insertion-stats-type__] insertion;
|
||||
xref:stats_lookup_stats_type[__lookup-stats-type__] successful_lookup,
|
||||
@ -46,14 +46,14 @@ Provides the average value, variance and standard deviation of a sequence of num
|
||||
|
||||
Provides the number of insertion operations performed by a container and
|
||||
statistics on the associated __probe length__ (number of
|
||||
xref:#structures_open_addressing_containers[bucket groups] accessed per operation).
|
||||
xref:structures.adoc#structures_open_addressing_containers[bucket groups] accessed per operation).
|
||||
|
||||
==== __lookup-stats-type__
|
||||
|
||||
For successful (element found) or unsuccessful (not found) lookup,
|
||||
provides the number of operations performed by a container and
|
||||
statistics on the associated __probe length__ (number of
|
||||
xref:#structures_open_addressing_containers[bucket groups] accessed)
|
||||
xref:structures.adoc#structures_open_addressing_containers[bucket groups] accessed)
|
||||
and number of element comparisons per operation.
|
||||
|
||||
==== __stats-type__
|
||||
@ -66,6 +66,6 @@ If the supplied hash function has good quality, then:
|
||||
* For unsuccessful lookups, the average number of element comparisons should be close to 0.0.
|
||||
|
||||
These statistics can be used to determine if a given hash function
|
||||
can be marked as xref:hash_traits_hash_is_avalanching[__avalanching__].
|
||||
can be marked as xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[__avalanching__].
|
||||
|
||||
---
|
||||
|
@ -12,9 +12,9 @@ array, and insertions into an already occupied bucket are diverted to available
|
||||
vicinity of the original position. This type of data layout is known as _open addressing_.
|
||||
|
||||
As a result of its using open addressing, the interface of `boost::unordered_flat_map` deviates in
|
||||
a number of aspects from that of `boost::unordered_map`/`std::unordered_map`:
|
||||
a number of aspects from that of `boost::unordered_map`/`std::unordered_map`:
|
||||
|
||||
- `value_type` must be move-constructible.
|
||||
- `value_type` must be move-constructible.
|
||||
- Pointer stability is not kept under rehashing.
|
||||
- `begin()` is not constant-time.
|
||||
- There is no API for bucket handling (except `bucket_count`) or node extraction/insertion.
|
||||
@ -58,7 +58,7 @@ namespace boost {
|
||||
using iterator = _implementation-defined_;
|
||||
using const_iterator = _implementation-defined_;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:unordered_flat_map_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:unordered_flat_map_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// construct/copy/destroy
|
||||
xref:#unordered_flat_map_default_constructor[unordered_flat_map]();
|
||||
@ -343,7 +343,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -353,7 +353,7 @@ at the expense of extra computational cost.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the container. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the container. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -653,7 +653,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
unordered_flat_map& operator=(unordered_flat_map const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -1400,7 +1400,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_flat_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_flat_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1411,7 +1411,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_flat_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_flat_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1440,7 +1440,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-key-type__ = std::remove_const_t<
|
||||
std::tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::tuple_element_t<0, xref:#unordered_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-mapped-type__
|
||||
@ -1448,7 +1448,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-mapped-type__ =
|
||||
std::tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
std::tuple_element_t<1, xref:#unordered_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-to-alloc-type__
|
||||
@ -1456,8 +1456,8 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-to-alloc-type__ = std::pair<
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#unordered_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#unordered_flat_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
=== Equality Comparisons
|
||||
@ -1535,7 +1535,7 @@ return original_size - c.size();
|
||||
|
||||
``unordered_flat_map``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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an unordered_flat_map to an archive
|
||||
|
||||
@ -1546,7 +1546,7 @@ Requires:;; `std::remove_const<key_type>::type` and `std::remove_const<mapped_ty
|
||||
are serializable (XML serializable), and they do support Boost.Serialization
|
||||
`save_construct_data`/`load_construct_data` protocol (automatically suported by
|
||||
https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^]
|
||||
types).
|
||||
types).
|
||||
|
||||
---
|
||||
|
||||
|
@ -12,9 +12,9 @@ array, and insertions into an already occupied bucket are diverted to available
|
||||
vicinity of the original position. This type of data layout is known as _open addressing_.
|
||||
|
||||
As a result of its using open addressing, the interface of `boost::unordered_flat_set` deviates in
|
||||
a number of aspects from that of `boost::unordered_flat_set`/`std::unordered_flat_set`:
|
||||
a number of aspects from that of `boost::unordered_flat_set`/`std::unordered_flat_set`:
|
||||
|
||||
- `value_type` must be move-constructible.
|
||||
- `value_type` must be move-constructible.
|
||||
- Pointer stability is not kept under rehashing.
|
||||
- `begin()` is not constant-time.
|
||||
- There is no API for bucket handling (except `bucket_count`) or node extraction/insertion.
|
||||
@ -53,7 +53,7 @@ namespace boost {
|
||||
using iterator = _implementation-defined_;
|
||||
using const_iterator = _implementation-defined_;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:unordered_flat_set_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:unordered_flat_set_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// construct/copy/destroy
|
||||
xref:#unordered_flat_set_default_constructor[unordered_flat_set]();
|
||||
@ -291,7 +291,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -301,7 +301,7 @@ at the expense of extra computational cost.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the container. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the container. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -601,7 +601,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
unordered_flat_set& operator=(unordered_flat_set const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -1173,7 +1173,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_flat_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_flat_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1184,7 +1184,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_flat_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_flat_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1283,7 +1283,7 @@ return original_size - c.size();
|
||||
|
||||
``unordered_flat_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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an unordered_flat_set to an archive
|
||||
|
||||
@ -1294,7 +1294,7 @@ 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).
|
||||
types).
|
||||
|
||||
---
|
||||
|
||||
|
@ -1420,7 +1420,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-key-type__ = std::remove_const_t<
|
||||
std::tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::tuple_element_t<0, xref:#unordered_multimap_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-mapped-type__
|
||||
@ -1428,7 +1428,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-mapped-type__ =
|
||||
std::tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
std::tuple_element_t<1, xref:#unordered_multimap_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-to-alloc-type__
|
||||
@ -1436,8 +1436,8 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-to-alloc-type__ = std::pair<
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#unordered_multimap_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#unordered_multimap_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
=== Equality Comparisons
|
||||
@ -1518,7 +1518,7 @@ return original_size - c.size();
|
||||
|
||||
``unordered_multimap``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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an unordered_multimap to an archive
|
||||
|
||||
@ -1529,7 +1529,7 @@ Requires:;; `std::remove_const<key_type>::type` and `std::remove_const<mapped_ty
|
||||
are serializable (XML serializable), and they do support Boost.Serialization
|
||||
`save_construct_data`/`load_construct_data` protocol (automatically suported by
|
||||
https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^]
|
||||
types).
|
||||
types).
|
||||
|
||||
---
|
||||
|
||||
|
@ -10,7 +10,7 @@ being node-based, it provides pointer stability and node handling functionalitie
|
||||
Its performance lies between those of `boost::unordered_map` and `boost::unordered_flat_map`.
|
||||
|
||||
As a result of its using open addressing, the interface of `boost::unordered_node_map` deviates in
|
||||
a number of aspects from that of `boost::unordered_map`/`std::unordered_map`:
|
||||
a number of aspects from that of `boost::unordered_map`/`std::unordered_map`:
|
||||
|
||||
- `begin()` is not constant-time.
|
||||
- There is no API for bucket handling (except `bucket_count`).
|
||||
@ -57,7 +57,7 @@ namespace boost {
|
||||
using node_type = _implementation-defined_;
|
||||
using insert_return_type = _implementation-defined_;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:unordered_node_map_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:unordered_node_map_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// construct/copy/destroy
|
||||
xref:#unordered_node_map_default_constructor[unordered_node_map]();
|
||||
@ -346,7 +346,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -356,7 +356,7 @@ at the expense of extra computational cost.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the container. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the container. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -392,7 +392,7 @@ The iterator category is at least a forward iterator.
|
||||
typedef _implementation-defined_ node_type;
|
||||
----
|
||||
|
||||
A class for holding extracted container elements, modelling
|
||||
A class for holding extracted container elements, modelling
|
||||
https://en.cppreference.com/w/cpp/container/node_handle[NodeHandle].
|
||||
|
||||
---
|
||||
@ -687,7 +687,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
unordered_node_map& operator=(unordered_node_map const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -1504,7 +1504,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_node_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_node_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1515,7 +1515,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_node_map_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_node_map_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1544,7 +1544,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-key-type__ = std::remove_const_t<
|
||||
std::tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::tuple_element_t<0, xref:#unordered_node_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-mapped-type__
|
||||
@ -1552,7 +1552,7 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-mapped-type__ =
|
||||
std::tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
std::tuple_element_t<1, xref:#unordered_node_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
|
||||
-----
|
||||
|
||||
==== __iter-to-alloc-type__
|
||||
@ -1560,8 +1560,8 @@ template<class InputIterator>
|
||||
-----
|
||||
template<class InputIterator>
|
||||
using __iter-to-alloc-type__ = std::pair<
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
std::add_const_t<std::tuple_element_t<0, xref:#unordered_node_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
|
||||
std::tuple_element_t<1, xref:#unordered_node_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
|
||||
-----
|
||||
|
||||
=== Equality Comparisons
|
||||
@ -1639,7 +1639,7 @@ return original_size - c.size();
|
||||
|
||||
``unordered_node_map``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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an unordered_node_map to an archive
|
||||
|
||||
@ -1650,7 +1650,7 @@ Requires:;; `std::remove_const<key_type>::type` and `std::remove_const<mapped_ty
|
||||
are serializable (XML serializable), and they do support Boost.Serialization
|
||||
`save_construct_data`/`load_construct_data` protocol (automatically suported by
|
||||
https://en.cppreference.com/w/cpp/named_req/DefaultConstructible[DefaultConstructible^]
|
||||
types).
|
||||
types).
|
||||
|
||||
---
|
||||
|
||||
|
@ -10,7 +10,7 @@ being node-based, it provides pointer stability and node handling functionalitie
|
||||
Its performance lies between those of `boost::unordered_set` and `boost::unordered_flat_set`.
|
||||
|
||||
As a result of its using open addressing, the interface of `boost::unordered_node_set` deviates in
|
||||
a number of aspects from that of `boost::unordered_set`/`std::unordered_set`:
|
||||
a number of aspects from that of `boost::unordered_set`/`std::unordered_set`:
|
||||
|
||||
- `begin()` is not constant-time.
|
||||
- There is no API for bucket handling (except `bucket_count`).
|
||||
@ -52,7 +52,7 @@ namespace boost {
|
||||
using node_type = _implementation-defined_;
|
||||
using insert_return_type = _implementation-defined_;
|
||||
|
||||
using stats = xref:stats_stats_type[__stats-type__]; // if statistics are xref:unordered_node_set_boost_unordered_enable_stats[enabled]
|
||||
using stats = xref:reference/stats.adoc#stats_stats_type[__stats-type__]; // if statistics are xref:unordered_node_set_boost_unordered_enable_stats[enabled]
|
||||
|
||||
// construct/copy/destroy
|
||||
xref:#unordered_node_set_default_constructor[unordered_node_set]();
|
||||
@ -295,7 +295,7 @@ The size of the bucket array can be automatically increased by a call to `insert
|
||||
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||
allow for higher loads.
|
||||
|
||||
If `xref:hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
If `xref:reference/hash_traits.adoc#hash_traits_hash_is_avalanching[hash_is_avalanching]<Hash>::value` is `true`, the hash function
|
||||
is used as-is; otherwise, a bit-mixing post-processing stage is added to increase the quality of hashing
|
||||
at the expense of extra computational cost.
|
||||
|
||||
@ -305,7 +305,7 @@ at the expense of extra computational cost.
|
||||
|
||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
||||
|
||||
Globally define this macro to enable xref:#stats[statistics calculation] for the container. Note
|
||||
Globally define this macro to enable xref:reference/stats.adoc#stats[statistics calculation] for the container. Note
|
||||
that this option decreases the overall performance of many operations.
|
||||
|
||||
---
|
||||
@ -341,7 +341,7 @@ The iterator category is at least a forward iterator.
|
||||
typedef _implementation-defined_ node_type;
|
||||
----
|
||||
|
||||
A class for holding extracted container elements, modelling
|
||||
A class for holding extracted container elements, modelling
|
||||
https://en.cppreference.com/w/cpp/container/node_handle[NodeHandle].
|
||||
|
||||
---
|
||||
@ -639,7 +639,7 @@ Note:;; The destructor is applied to every element, and all memory is deallocate
|
||||
unordered_node_set& operator=(unordered_node_set const& other);
|
||||
```
|
||||
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
The assignment operator. Destroys previously existing elements, copy-assigns the hash function and predicate from `other`,
|
||||
copy-assigns the allocator from `other` if `Alloc::propagate_on_container_copy_assignment` exists and `Alloc::propagate_on_container_copy_assignment::value` is `true`,
|
||||
and finally inserts copies of the elements of `other`.
|
||||
|
||||
@ -1281,7 +1281,7 @@ stats get_stats() const;
|
||||
|
||||
[horizontal]
|
||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_node_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_node_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1292,7 +1292,7 @@ void reset_stats() noexcept;
|
||||
|
||||
[horizontal]
|
||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
||||
Notes:;; Only available if xref:stats[statistics calculation] is xref:unordered_node_set_boost_unordered_enable_stats[enabled].
|
||||
Notes:;; Only available if xref:reference/stats.adoc#stats[statistics calculation] is xref:unordered_node_set_boost_unordered_enable_stats[enabled].
|
||||
|
||||
---
|
||||
|
||||
@ -1391,7 +1391,7 @@ return original_size - c.size();
|
||||
|
||||
``unordered_node_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.
|
||||
by this library. Both regular and XML archives are supported.
|
||||
|
||||
==== Saving an unordered_node_set to an archive
|
||||
|
||||
@ -1402,7 +1402,7 @@ 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).
|
||||
types).
|
||||
|
||||
---
|
||||
|
||||
|
@ -87,7 +87,7 @@ number of available buckets, this function is logically equivalent to:
|
||||
x.rehash(std::ceil(n / x.max_load_factor()))
|
||||
```
|
||||
+
|
||||
See the <<unordered_map_rehash,reference for more details>> on the `rehash` function.
|
||||
See the xref:reference/unordered_map.adoc#unordered_map_rehash[reference for more details] on the `rehash` function.
|
||||
|
||||
[#comparison]
|
||||
|
||||
|
@ -63,7 +63,7 @@ A more detailed description of Boost.Unordered's closed-addressing implementatio
|
||||
given in an
|
||||
https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html[external article].
|
||||
For more information on implementation rationale, read the
|
||||
xref:rationale.adoc#rationale_open_addresing_containers[corresponding section].
|
||||
xref:rationale.adoc#rationale_closed_addressing_containers[corresponding section].
|
||||
|
||||
== Open-addressing Containers
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user