diff --git a/doc/reference/ord_indices.html b/doc/reference/ord_indices.html index a1e71f9..6035fe6 100644 --- a/doc/reference/ord_indices.html +++ b/doc/reference/ord_indices.html @@ -443,7 +443,7 @@ section. The complexity signature of ordered indices is: @@ -174,16 +175,19 @@ explanations on their acceptable type values. Ranked indices are a variation of ordered indices providing additional capabilities for calculation of and access by rank; the rank of an element is the distance to it from the beginning of the index. Besides this extension, ranked indices replicate the -public interface of ordered indices with the difference, complexity-wise, that deletion -is done in logarithmic rather than constant time. Also, execution times and memory consumption are -expected to be poorer due to the internal bookkeeping needed to maintain rank-related information. +public interface of ordered indices with the difference, complexity-wise, that +hinted insertion and deletion +are done in logarithmic rather than constant time. Also, execution times and memory consumption are +expected to be poorer due to the internal bookkeeping needed to maintain rank-related information +(an exception being count operations, which are actually faster). As with ordered indices, ranked indices can be unique (no duplicate elements are allowed) or non-unique: either version is associated to a different index specifier, but the interface of both index types is the same.

-In what follows, we only describe the extra operations provided by ranked indices: for the +In what follows, we only describe the extra operations provided by ranked indices or those +operations with improved performance: for the rest refer to the documentation for ordered indices, bearing in mind the occasional differences in complexity.

@@ -224,6 +228,8 @@ indices, bearing in mind the occasional differences in complexity. std::reverse_iterator<iterator> reverse_iterator; typedef equivalent to std::reverse_iterator<const_iterator> const_reverse_iterator; + typedef same as owning container node_type; + typedef following [container.insert.return] spec insert_return_type; // construct/copy/destroy: @@ -269,6 +275,11 @@ indices, bearing in mind the occasional differences in complexity. template<typename InputIterator> void insert(InputIterator first,InputIterator last); void insert(std::initializer_list<value_type> list); + insert_return_type insert(node_type&& nh); + iterator insert(const_iterator position,node_type&& nh); + + node_type extract(const_iterator position); + node_type extract(const key_type& x); iterator erase(iterator position); size_type erase(const key_type& x); @@ -286,6 +297,16 @@ indices, bearing in mind the occasional differences in complexity. void swap(index class name& x); void clear()noexcept; + template<typename Index> void merge(Index&& x); + template<typename Index> + std::pair<iterator,bool> merge( + Index&& x,typename std::remove_reference_t<Index>::const_iterator i); + template<typename Index> + void merge( + Index&& x, + typename std::remove_reference_t<Index>::const_iterator first, + typename std::remove_reference_t<Index>::const_iterator last); + // observers: key_from_value key_extractor()const; @@ -441,8 +462,7 @@ section. The complexity signature of ranked indices is: