std::unordered_set equal_range() 方法
- 自 C++20 起
- 自 C++11 起
// (1) Non const version
std::pair<iterator, iterator> equal_range( const Key& key );
// (2) Const version
std::pair<const_iterator, const_iterator> equal_range( const Key& key ) const;
// (3) Non const version
template< class K >
std::pair<iterator, iterator> equal_range( const K& x );
// (4) Const version
template< class K >
std::pair<const_iterator, const_iterator> equal_range( const K& x ) const;
// (1) Non const version
std::pair<iterator, iterator> equal_range( const Key& key );
// (2) Const version
std::pair<const_iterator, const_iterator> equal_range( const Key& key ) const;
- (1-2) 返回一个包含容器中所有键为
key
的元素的范围。该范围由两个迭代器定义,第一个指向所需范围的第一个元素,第二个指向该范围的最后一个元素之后的位置。 - (3-4) 返回一个包含容器中所有键与
x
等价的元素的范围。此重载仅当Hash::is_transparent
和KeyEqual::is_transparent
有效且各自表示一个类型时才参与重载决议。这假定此类Hash
可以与K
和Key
类型一起调用,并且KeyEqual
是透明的,这共同允许在不构造Key
实例的情况下调用此函数。
参数
key
- 要计数的元素的键值x
- 可以与键透明比较的任何类型的值
返回值
包含定义所需范围的迭代器对的 std::pair
。
如果没有这样的元素,则将 past-the-end(参见 end()
)迭代器作为对的两个元素返回。
复杂度
平均情况下,与键为 key
的元素数量呈线性关系 - O(N),其中 N 是键为 key
的元素数量。
最坏情况下,与容器的大小呈线性关系 - O(size())。
异常
(无)
备注
特性测试宏:__cpp_lib_generic_unordered_lookup
(用于重载 (3-4))。
示例
重要
本节需要改进。您可以通过编辑此文档页面来帮助我们。