mirror of
https://github.com/boostorg/unordered.git
synced 2025-05-10 07:34:00 +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_set.adoc[unordered_set]
|
||||||
** xref:reference/unordered_multiset.adoc[unordered_multiset]
|
** xref:reference/unordered_multiset.adoc[unordered_multiset]
|
||||||
** xref:reference/hash_traits.adoc[hash_traits]
|
** 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_map.adoc[unordered_flat_map]
|
||||||
** xref:reference/unordered_flat_set.adoc[unordered_flat_set]
|
** xref:reference/unordered_flat_set.adoc[unordered_flat_set]
|
||||||
** xref:reference/unordered_node_map.adoc[unordered_node_map]
|
** 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
|
evenly distributed amongst the buckets so only a small number of elements will
|
||||||
need to be examined.
|
need to be examined.
|
||||||
|
|
||||||
There is <<hash_equality, more information on hash functions and
|
There is xref:hash_equality.adoc#hash_equality[more information on hash functions and
|
||||||
equality predicates in the next section>>.
|
equality predicates in the next section].
|
||||||
|
|
||||||
You can see in the diagram that `A` & `D` have been placed in the same bucket.
|
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
|
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
|
the search slower. This is known as a *collision*. To keep things fast we try to
|
||||||
keep collisions to a minimum.
|
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:
|
diagram would look as follows:
|
||||||
|
|
||||||
image::buckets-oa.png[]
|
image::buckets-oa.png[]
|
||||||
|
@ -150,10 +150,10 @@ element already exists):
|
|||||||
----
|
----
|
||||||
|
|
||||||
Consult the references of
|
Consult the references of
|
||||||
`xref:reference/concurrent_node_set#concurrent_node_set[boost::concurrent_node_set]`,
|
`xref:reference/concurrent_node_set.adoc#concurrent_node_set[boost::concurrent_node_set]`,
|
||||||
`xref:reference/concurrent_node_map#concurrent_flat_map[boost::concurrent_node_map]`,
|
`xref:reference/concurrent_node_map.adoc#concurrent_node_map[boost::concurrent_node_map]`,
|
||||||
`xref:reference/concurrent_flat_set#concurrent_flat_set[boost::concurrent_flat_set]` and
|
`xref:reference/concurrent_flat_set.adoc#concurrent_flat_set[boost::concurrent_flat_set]` and
|
||||||
`xref:reference/concurrent_flat_map#concurrent_flat_map[boost::concurrent_flat_map]`
|
`xref:reference/concurrent_flat_map.adoc#concurrent_flat_map[boost::concurrent_flat_map]`
|
||||||
for the complete list of visitation-enabled operations.
|
for the complete list of visitation-enabled operations.
|
||||||
|
|
||||||
== Whole-Table Visitation
|
== Whole-Table Visitation
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
While the associative containers use an ordering relation to specify how the
|
While the associative containers use an ordering relation to specify how the
|
||||||
elements are stored, the unordered associative containers use an equality
|
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:
|
is declared as:
|
||||||
|
|
||||||
```cpp
|
```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
|
including standard containers. To use any types not supported by these methods
|
||||||
you have to extend Boost.Hash to support the type or use
|
you have to extend Boost.Hash to support the type or use
|
||||||
your own custom equality predicates and hash functions. See the
|
your own custom equality predicates and hash functions. See the
|
||||||
<<hash_equality,Equality Predicates and Hash Functions>> section
|
xref:hash_equality.adoc#hash_equality[Equality Predicates and Hash Functions], section for more details.
|
||||||
for more details.
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* xref:reference/unordered_set.adoc[unordered_set]
|
* xref:reference/unordered_set.adoc[unordered_set]
|
||||||
* xref:reference/unordered_multiset.adoc[unordered_multiset]
|
* xref:reference/unordered_multiset.adoc[unordered_multiset]
|
||||||
* xref:reference/hash_traits.adoc[hash_traits]
|
* 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_map.adoc[unordered_flat_map]
|
||||||
* xref:reference/unordered_flat_set.adoc[unordered_flat_set]
|
* xref:reference/unordered_flat_set.adoc[unordered_flat_set]
|
||||||
* xref:reference/unordered_node_map.adoc[unordered_node_map]
|
* xref:reference/unordered_node_map.adoc[unordered_node_map]
|
||||||
|
@ -50,7 +50,7 @@ namespace boost {
|
|||||||
using size_type = std::size_t;
|
using size_type = std::size_t;
|
||||||
using difference_type = std::ptrdiff_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
|
// constants
|
||||||
static constexpr size_type xref:#concurrent_flat_map_constants[bulk_visit_size] = _implementation-defined_;
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -456,7 +456,7 @@ this macro.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1708,7 +1708,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
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>
|
template<class InputIterator>
|
||||||
using __iter-key-type__ = std::remove_const_t<
|
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__
|
==== __iter-mapped-type__
|
||||||
@ -1756,7 +1756,7 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-mapped-type__ =
|
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__
|
==== __iter-to-alloc-type__
|
||||||
@ -1764,8 +1764,8 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-to-alloc-type__ = std::pair<
|
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::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_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
|
||||||
-----
|
-----
|
||||||
|
|
||||||
=== Equality Comparisons
|
=== Equality Comparisons
|
||||||
|
@ -45,7 +45,7 @@ namespace boost {
|
|||||||
using size_type = std::size_t;
|
using size_type = std::size_t;
|
||||||
using difference_type = std::ptrdiff_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
|
// constants
|
||||||
static constexpr size_type xref:#concurrent_flat_set_constants[bulk_visit_size] = _implementation-defined_;
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -402,7 +402,7 @@ this macro.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1508,7 +1508,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
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].
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ namespace boost {
|
|||||||
using node_type = _implementation-defined_;
|
using node_type = _implementation-defined_;
|
||||||
using insert_return_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
|
// constants
|
||||||
static constexpr size_type xref:#concurrent_node_map_constants[bulk_visit_size] = _implementation-defined_;
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -473,7 +473,7 @@ this macro.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1824,7 +1824,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
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>
|
template<class InputIterator>
|
||||||
using __iter-key-type__ = std::remove_const_t<
|
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__
|
==== __iter-mapped-type__
|
||||||
@ -1872,7 +1872,7 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-mapped-type__ =
|
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__
|
==== __iter-to-alloc-type__
|
||||||
@ -1880,8 +1880,8 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-to-alloc-type__ = std::pair<
|
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::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_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
|
||||||
-----
|
-----
|
||||||
|
|
||||||
=== Equality Comparisons
|
=== Equality Comparisons
|
||||||
|
@ -48,7 +48,7 @@ namespace boost {
|
|||||||
using node_type = _implementation-defined_;
|
using node_type = _implementation-defined_;
|
||||||
using insert_return_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
|
// constants
|
||||||
static constexpr size_type xref:#concurrent_node_set_constants[bulk_visit_size] = _implementation-defined_;
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -419,7 +419,7 @@ this macro.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1631,7 +1631,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the table so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the table.
|
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].
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ struct xref:stats_lookup_stats_type[__lookup-stats-type__]
|
|||||||
xref:#stats_stats_summary_type[__stats-summary-type__] num_comparisons;
|
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_insertion_stats_type[__insertion-stats-type__] insertion;
|
||||||
xref:stats_lookup_stats_type[__lookup-stats-type__] successful_lookup,
|
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
|
Provides the number of insertion operations performed by a container and
|
||||||
statistics on the associated __probe length__ (number of
|
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__
|
==== __lookup-stats-type__
|
||||||
|
|
||||||
For successful (element found) or unsuccessful (not found) lookup,
|
For successful (element found) or unsuccessful (not found) lookup,
|
||||||
provides the number of operations performed by a container and
|
provides the number of operations performed by a container and
|
||||||
statistics on the associated __probe length__ (number of
|
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.
|
and number of element comparisons per operation.
|
||||||
|
|
||||||
==== __stats-type__
|
==== __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.
|
* 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
|
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__].
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -58,7 +58,7 @@ namespace boost {
|
|||||||
using iterator = _implementation-defined_;
|
using iterator = _implementation-defined_;
|
||||||
using const_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
|
// construct/copy/destroy
|
||||||
xref:#unordered_flat_map_default_constructor[unordered_flat_map]();
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -353,7 +353,7 @@ at the expense of extra computational cost.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1400,7 +1400,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
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>
|
template<class InputIterator>
|
||||||
using __iter-key-type__ = std::remove_const_t<
|
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__
|
==== __iter-mapped-type__
|
||||||
@ -1448,7 +1448,7 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-mapped-type__ =
|
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__
|
==== __iter-to-alloc-type__
|
||||||
@ -1456,8 +1456,8 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-to-alloc-type__ = std::pair<
|
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::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_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
|
||||||
-----
|
-----
|
||||||
|
|
||||||
=== Equality Comparisons
|
=== Equality Comparisons
|
||||||
|
@ -53,7 +53,7 @@ namespace boost {
|
|||||||
using iterator = _implementation-defined_;
|
using iterator = _implementation-defined_;
|
||||||
using const_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
|
// construct/copy/destroy
|
||||||
xref:#unordered_flat_set_default_constructor[unordered_flat_set]();
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -301,7 +301,7 @@ at the expense of extra computational cost.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1173,7 +1173,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
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].
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -1420,7 +1420,7 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-key-type__ = std::remove_const_t<
|
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__
|
==== __iter-mapped-type__
|
||||||
@ -1428,7 +1428,7 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-mapped-type__ =
|
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__
|
==== __iter-to-alloc-type__
|
||||||
@ -1436,8 +1436,8 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-to-alloc-type__ = std::pair<
|
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::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_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
|
||||||
-----
|
-----
|
||||||
|
|
||||||
=== Equality Comparisons
|
=== Equality Comparisons
|
||||||
|
@ -57,7 +57,7 @@ namespace boost {
|
|||||||
using node_type = _implementation-defined_;
|
using node_type = _implementation-defined_;
|
||||||
using insert_return_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
|
// construct/copy/destroy
|
||||||
xref:#unordered_node_map_default_constructor[unordered_node_map]();
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -356,7 +356,7 @@ at the expense of extra computational cost.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1504,7 +1504,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
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>
|
template<class InputIterator>
|
||||||
using __iter-key-type__ = std::remove_const_t<
|
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__
|
==== __iter-mapped-type__
|
||||||
@ -1552,7 +1552,7 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-mapped-type__ =
|
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__
|
==== __iter-to-alloc-type__
|
||||||
@ -1560,8 +1560,8 @@ template<class InputIterator>
|
|||||||
-----
|
-----
|
||||||
template<class InputIterator>
|
template<class InputIterator>
|
||||||
using __iter-to-alloc-type__ = std::pair<
|
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::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_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
|
||||||
-----
|
-----
|
||||||
|
|
||||||
=== Equality Comparisons
|
=== Equality Comparisons
|
||||||
|
@ -52,7 +52,7 @@ namespace boost {
|
|||||||
using node_type = _implementation-defined_;
|
using node_type = _implementation-defined_;
|
||||||
using insert_return_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
|
// construct/copy/destroy
|
||||||
xref:#unordered_node_set_default_constructor[unordered_node_set]();
|
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
|
greater than `max_load_factor()`, except possibly for small sizes where the implementation may decide to
|
||||||
allow for higher loads.
|
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
|
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.
|
at the expense of extra computational cost.
|
||||||
|
|
||||||
@ -305,7 +305,7 @@ at the expense of extra computational cost.
|
|||||||
|
|
||||||
==== `BOOST_UNORDERED_ENABLE_STATS`
|
==== `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.
|
that this option decreases the overall performance of many operations.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1281,7 +1281,7 @@ stats get_stats() const;
|
|||||||
|
|
||||||
[horizontal]
|
[horizontal]
|
||||||
Returns:;; A statistical description of the insertion and lookup operations performed by the container so far.
|
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]
|
[horizontal]
|
||||||
Effects:;; Sets to zero the internal statistics kept by the container.
|
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].
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ number of available buckets, this function is logically equivalent to:
|
|||||||
x.rehash(std::ceil(n / x.max_load_factor()))
|
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]
|
[#comparison]
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ A more detailed description of Boost.Unordered's closed-addressing implementatio
|
|||||||
given in an
|
given in an
|
||||||
https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html[external article].
|
https://bannalia.blogspot.com/2022/06/advancing-state-of-art-for.html[external article].
|
||||||
For more information on implementation rationale, read the
|
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
|
== Open-addressing Containers
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user