std::unorde...equal_range(3)
π std::unordered_multiset::equal_range π
okay so this is from the C++ Standard Libary manual, bestie, and todayβs main character is std::unordered_multiset::equal_range. Weβre gonna get you from βhuh?β to βohhh slayβ without losing a single detail. π«Άβ¨
πΈ NAME πΈ
std::unordered_multiset::equal_rangeβstd::unordered_multiset::equal_range
β¨ Synopsis β¨
(1) (since C++11)
std::pair<iterator, iterator> equal_range( const Key& key );
(2) (since C++11)
std::pair<const_iterator, const_iterator> equal_range( const Key& key ) const;
(3) (since C++20)
template< class K >
std::pair<iterator, iterator> equal_range( const K& x );
(4) (since C++20)
template< class K >
std::pair<const_iterator, const_iterator> equal_range( const K& x ) const;
π Parameters π
keyβ key value to compare the elements to.xβ a value of any type that can be transparently compared with a key.
π¦ Return value π¦
A std::pair containing a pair of iterators defining the wanted range. If there are no such elements, past-the-end (see end()) iterators are returned as both elements of the pair. π
β Complexity β
Average case linear in the number of elements with the key key, worst case linear in the size of the container.
π Notes π
Feature-test macro tea β:
- Feature-test macro:
__cpp_lib_generic_unordered_lookup- Value:
201811L - Std:
(C++20) - Feature: Heterogeneous comparison lookup in unordered associative containers, overloads
(3,4)
- Value:
π Example π
Estimates the characters frequency for given string.
// Run this code
#include <iostream>
#include <iterator>
#include <string>
#include <unordered_set>
int main()
{
std::string sentence{"cppreference.com"};
std::cout << "The sentence: " << sentence << '\n';
std::unordered_multiset<char> sequence;
for (char x : sentence)
sequence.insert(x);
std::cout << "The sequence: { ";
for (char x : sequence)
std::cout << x << ' ';
std::cout << "}\n" "Symbol:Frequency: ";
for (auto it = sequence.begin(); it != sequence.end();)
{
if (auto [first, last] = sequence.equal_range(*it); first != last)
{
std::cout << *first << ":" << std::distance(first, last) << " ";
it = last;
}
else
++it;
}
}
π Possible output π
The sentence: cppreference.com
The sequence: { m o c c c p p r r e e e e f n . }
Symbol:Frequency: m:1 o:1 c:3 p:2 r:2 e:4 f:1 n:1 .:1
π See also π
findβ finds element with specific key (public member function)containsβ checks if the container contains element with specific key (C++20) (public member function)countβ returns the number of elements matching specific key (public member function)equal_rangeβ returns range of elements matching a specific key (function template)
okay thatβs the whole page, bestie π β cute little footer sign-off: source http://cppreference.com, date 2024.06.10, page std::unorde...equal_range(3). mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms