unordered_set是一种关联容器,含有Key类型的唯一对象集合。搜索、插入和移除拥有平均常数时间复杂度。 在内部,元素并不以任何特别顺序排序,而是组织进桶中。元素被放进哪个桶完全依赖其值的散列。这允许对单独元素的快速访问,因为一旦计算了散列值,它就指代元素被放入的确切的桶。
From cppreference.com <cpp |container |unordered set std::pair<iterator,bool>insert(constvalue_type&value); (1)(since C++11) std::pair<iterator,bool>insert(value_type&&value); (2)(since C++11) iterator insert(const_iterator hint,constvalue_type&value); ...
unordered_set From cppreference.com < cpp | container | unordered set C++ Compiler support Freestanding and hosted Language Standard library Standard library headers Named requirements Feature test macros (C++20) Language support library Concepts library (C++20) Metaprogramming library (C++11) ...
std::unordered_set<Key,Hash,KeyEqual,Allocator>:: iterator find(constKey&key); (1)(C++11 起) const_iterator find(constKey&key)const; (2)(C++11 起) template<classK> iterator find(constK&x); (3)(C++20 起) template<classK> const_iterator find(constK&x)const;...
当\frac{n}{m}为常数阶的时候,unordered_set插入的平均情况的时间复杂度为O(1) 在MSVC2017中的unordered_set实现,默认的\alpha大小为1.0, 我们可以通过void max_load_factor(float ml)函数来调整。 迭代器的有效性 cppreference中给出了关于迭代器有效性的表格。我们还是以MSVC2017的实现作为说明。
而如果是unordered 泛型容器,则需要传入hash函 数,现在让我们使用unordered_set为例子,下面是 定义 https://zh.cppreference.com/w/cpp/container/uno rdered set template< class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, ...
Set和Unordered_Set的区别 参考文献: [1] cppreference中对std::set的介绍:https://zh.cppreference.com/w/cpp/container/set [2] cppreference中对std::unordered_set的介绍:https://zh.cppreference.com/w/cpp/container/unordered_set [3]https://blog.csdn.net/haluoluo211/article/details/82468061...
你想做的事情可以通过std::unodered_set::extract完成。cppreference的例子:
unordered_set is 是含有 Key 类型唯一对象集合的关联容器。搜索、插入和移除拥有平均常数时间复杂度。 在内部,元素并不以任何特别顺序排序,而是组织进桶中。元素被放进哪个桶完全依赖其值的哈希。这允许对单独元素的快速访问,因为哈希一旦确定,就准确指代元素被放入的桶。
(unordered_set<Key, Hash, Pred, Alloc>&x, unordered_set<Key, Hash, Pred, Alloc>&y);template<classKey,classHash,classPred,classAlloc>voidswap(unordered_multiset<Key, Hash, Pred, Alloc>&x, unordered_multiset<Key, Hash, Pred, Alloc>&y);template<classKey,classHash,classPred,classAlloc>bool...