C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- std::array
- std::vector
- std::map
- std::unordered_map
- std::priority_queue
- std::span
- std::forward_list
- std::deque
- std::list
- std::set
- std::multiset
- std::multimap
- std::unordered_set
- std::unordered_set<Key,Hash,KeyEqual,Allocator>::end, std::unordered_set<Key,Hash,KeyEqual,Allocator>::cend
- std::unordered_set<Key,Hash,KeyEqual,Allocator>::unordered_set
- std::unordered_set<Key,Hash,KeyEqual,Allocator>::~unordered_set
- std::unordered_set<Key,Hash,KeyEqual,Allocator>::operator=
- operator==,!=(std::unordered_set)
- std::swap(std::unordered_set)
- std::erase_if (std::unordered_set)
- std::unordered_set<Key,Hash,KeyEqual,Allocator>::empty
- std::unordered_multiset
- std::unordered_multimap
- std::stack
- std::queue
- std::vector<bool>
- ç»ç¹ææ (C++17)
- 注é
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >容å¨åº >std::unordered_set > std::unordered_set<Key,Hash,KeyEqual,Allocator>::unordered_set
std::unordered_set<Key,Hash,KeyEqual,Allocator>::unordered_set
| unordered_set() : unordered_set( size_type(/*implementation-defined*/) ) {} explicit unordered_set( size_type bucket_count, |
(1) | (C++11 èµ·) |
| unordered_set( size_type bucket_count, Â Â Â Â Â Â Â Â const Allocator& alloc ) |
(1) | (C++14 èµ·) |
| explicit unordered_set( const Allocator& alloc ); |
(1) | (C++11 èµ·) |
| template< class InputIt > unordered_set( InputIt first, InputIt last, |
(2) | (C++11 èµ·) |
| template< class InputIt > unordered_set( InputIt first, InputIt last, |
(2) | (C++14 èµ·) |
| template< class InputIt > unordered_set( InputIt first, InputIt last, |
(2) | (C++14 èµ·) |
| unordered_set( const unordered_set& other ); |
(3) | (C++11 èµ·) |
| unordered_set( const unordered_set& other, const Allocator& alloc ); |
(3) | (C++11 èµ·) |
| unordered_set( unordered_set&& other ); |
(4) | (C++11 èµ·) |
| unordered_set( unordered_set&& other, const Allocator& alloc ); |
(4) | (C++11 èµ·) |
| unordered_set( std::initializer_list<value_type> init, Â Â Â Â Â Â Â Â size_type bucket_count = /*implementation-defined*/, |
(5) | (C++11 èµ·) |
| unordered_set( std::initializer_list<value_type> init, Â Â Â Â Â Â Â Â size_type bucket_count, |
(5) | (C++14 èµ·) |
| unordered_set( std::initializer_list<value_type> init, Â Â Â Â Â Â Â Â size_type bucket_count, |
(5) | (C++14 èµ·) |
ä»åç§æ°æ®æºæé æ°å®¹å¨ãå¯éçä»¥ç¨æ·æä¾ç bucket_count 为ç¨äºå建çæå°æ¡¶æ°ï¼ä»¥ hash 为åå¸å½æ°ï¼ä»¥ equal 为æ¯è¾å
³é®ç彿°ï¼å以 alloc 为åé
å¨ã
max_load_factor() 为 1.0 ã对äºé»è®¤æé 彿°ï¼æ¡¶æ°æ¯å®ç°å®ä¹çã[first, last) çå
容ç容å¨ã设置 max_load_factor() 为 1.0 ãè¥èå´ä¸çå¤ä¸ªå
ç´ æ¥ææ¯è¾çä»·çå
³é®ï¼åæå
¥åªä¸ªå
ç´ æ¯æªæå®çï¼å¾
å³ç LWG2844 ï¼ãother å
容坿¬ç容å¨ï¼ä¸åå¤å¶å è½½å åãè°è¯ååå¸å½æ°ãè¥ä¸æä¾ alloc ï¼åéè¿è°ç¨ std::allocator_traits<allocator_type>::select_on_container_copy_construction(other.get_allocator()) è·å¾åé
å¨ãother å
容ç容å¨ãè¥ä¸æä¾ alloc ï¼åéè¿ä»å±äº other çåé
å¨ç§»å¨æé è·å¾åé
å¨ãinit å
容ç容å¨ï¼å unordered_set(init.begin(), init.end()) ãåæ°
| alloc | - | ç¨äºæ¤å®¹å¨ææå ååé å¨çåé å¨ |
| bucket_count | - | åå§åæ¶ç¨çæå°æ¡¶æ°ãè¥ä¸æå®ï¼å使ç¨å®ç°å®ä¹çé»è®¤å¼ |
| hash | - | è¦ç¨çåå¸å½æ° |
| equal | - | ç¨äºæ¤å®¹å¨ææå ³é®æ¯è¾çæ¯è¾å½æ° |
| first, last | - | å¤å¶å ç´ æ¥æºçèå´ |
| other | - | ç¨ä½æºä»¥åå§å容å¨å ç´ çå¦ä¸å®¹å¨ |
| init | - | ç¨ä»¥åå§å容å¨å ç´ ç initializer_list |
| ç±»åè¦æ± | ||
-InputIt å¿
须满足éçè¾å
¥è¿ä»£å¨ (LegacyInputIterator) çè¦æ±ã
| ||
å¤æåº¦
first å last é´çè·ç¦»æçº¿æ§ï¼æåæ
嵿平æ¹ãother çå¤§å°æçº¿æ§ãalloc ä¸ alloc != other.get_allocator() å为线æ§ãinit çå¤§å°æçº¿æ§ï¼æåæ
嵿平æ¹ãå¼å¸¸
对 Allocator::allocate çè°ç¨å¯è½æåºã
注æ
other çå¼ç¨åè¿ä»£å¨ï¼é¤äºå°¾è¿ä»£å¨ï¼ä¿æåæ³ï¼ä½æä»£ç°äº *this ä¸çå
ç´ ãå½åæ åç± [container.requirements.general]/12 ä¸çæ»æ¬éè¿°ä½åºæ¤ä¿è¯ï¼è LWG 2321 æ£å¨èèæ´ä¸¥æ ¼çä¿è¯ã
示ä¾
| æ¬èæªå®æ åå ï¼ææ ç¤ºä¾ |
ç¼ºé·æ¥å
ä¸åæ´æ¹è¡ä¸ºçç¼ºé·æ¥å追溯å°åºç¨äºä»¥ååºçç C++ æ åã
| DR | åºç¨äº | åºçæ¶çè¡ä¸º | æ£ç¡®è¡ä¸º |
|---|---|---|---|
| LWG 2193 | C++11 | é»è®¤æé 彿°ä¸º explicit | 使ä¹ä¸ºé explicit |
åé
| èµå¼ç»å®¹å¨ (å ¬å¼æå彿°) |