std::multiset<Key,Compare,Allocator>:: equal_range
|
std::
pair
<
iterator, iterator
>
equal_range
(
const
Key
&
key
)
;
|
(1) | (constexpr seit C++26) |
|
std::
pair
<
const_iterator, const_iterator
>
equal_range ( const Key & key ) const ; |
(2) | (constexpr seit C++26) |
|
template
<
class
K
>
std:: pair < iterator, iterator > equal_range ( const K & x ) ; |
(3) |
(seit C++14)
(constexpr seit C++26) |
|
template
<
class
K
>
std::
pair
<
const_iterator, const_iterator
>
|
(4) |
(seit C++14)
(constexpr seit C++26) |
Gibt einen Bereich zurück, der alle Elemente mit dem angegebenen Schlüssel im Container enthält. Der Bereich wird durch zwei Iteratoren definiert, wobei einer auf das erste Element zeigt, das nicht kleiner als der angegebene Schlüssel ist, und ein anderer auf das erste Element, das größer als der angegebene Schlüssel ist.
Alternativ kann der erste Iterator mit lower_bound() erhalten werden, und der zweite mit upper_bound() .
Compare
transparent
ist. Sie ermöglicht den Aufruf dieser Funktion ohne Konstruktion einer Instanz von
Key
.
InhaltParameter
Rückgabewertstd::pair enthält ein Paar von Iteratoren, die den gewünschten Bereich definieren:
KomplexitätLogarithmisch in der Größe des Containers. Hinweise
Beispiel
Diesen Code ausführen
#include <iostream> #include <set> template<typename I> void print_equal_range(I first, I lb, I ub, I last) { for (I i{first}; i != lb; ++i) std::cout << *i << ' '; std::cout << "[ "; for (I i{lb}; i != ub; ++i) std::cout << *i << ' '; std::cout << ") "; for (I i{ub}; i != last; ++i) std::cout << *i << ' '; std::cout << '\n'; } int main() { std::multiset<int> c{4, 3, 2, 1, 3, 3}; std::cout << "c = "; print_equal_range(begin(c), begin(c), end(c), end(c)); for (int key{}; key != 6; ++key) { std::cout << "key = " << key << "; equal range = "; const auto [lb, ub] = c.equal_range(key); print_equal_range(begin(c), lb, ub, end(c)); } } Ausgabe: c = [ 1 2 3 3 3 4 ) key = 0; equal range = [ ) 1 2 3 3 3 4 key = 1; equal range = [ 1 ) 2 3 3 3 4 key = 2; equal range = 1 [ 2 ) 3 3 3 4 key = 3; equal range = 1 2 [ 3 3 3 ) 4 key = 4; equal range = 1 2 3 3 3 [ 4 ) key = 5; equal range = 1 2 3 3 3 4 [ ) Siehe auch
|