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::unordered_map<Key,T,Hash,KeyEqual,Allocator>::operator[]
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::get_allocator
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::begin, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cbegin
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::empty
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::end, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cend
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::unordered_map
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::~unordered_map
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::operator=
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::size
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::max_size
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::clear
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::insert
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::insert_or_assign
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::emplace
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::emplace_hint
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::try_emplace
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::erase
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::swap
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::extract
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::merge
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::at
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::count
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::find
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::contains
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::equal_range
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::begin(size_type), std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cbegin(size_type)
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::end(size_type), std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cend(size_type)
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::bucket_count
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::max_bucket_count
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::bucket_size
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::bucket
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::load_factor
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::max_load_factor
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::rehash
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::reserve
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::hash_function
- std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::key_eq
- operator==,!=(std::unordered_map)
- std::swap(std::unordered_map)
- std::erase_if (std::unordered_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_multiset
- std::unordered_multimap
- std::stack
- std::queue
- std::vector<bool>
- ç»ç¹ææ (C++17)
- 注é
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >容å¨åº >std::unordered_map > std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::emplace
std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::emplace
| template< class... Args > std::pair<iterator,bool> emplace( Args&&... args ); |
(C++11 èµ·) | |
è¥å®¹å¨ä¸æ æ¥æè¯¥å
³é®çå
ç´ ï¼åæå
¥ä»¥ç»å®ç args å使é çæ°å
ç´ å°å®¹å¨ã
ç»å¿å°ä½¿ç¨ emplace å
è®¸å¨æé æ°å
ç´ çåæ¶é¿å
ä¸å¿
è¦çå¤å¶æç§»å¨æä½ã
åç¡®å°ä»¥ä¸æä¾ç» emplace è
ç¸åçåæ°ï¼éè¿ std::forward<Args>(args)... 转åè°ç¨æ°å
ç´ ï¼å³ std::pair<const Key, T> ï¼çæé 彿°ã
å³ä½¿å®¹å¨ä¸å·²ææ¥æè¯¥å
³é®çå
ç´ ï¼ä¹å¯è½æé å
ç´ ï¼è¯¥æ
åµä¸æ°æé çå
ç´ å°è¢«ç«å³éæ¯ã
è¥å æå ¥åçéåå¸ï¼åææè¿ä»£å¨é½è¢«éæ³åãå¦åè¿ä»£å¨ä¸åå½±åãå¼ç¨ä¸è¢«éæ³åãéåå¸ä» è¥æ°å ç´ æ°éå¤§äº max_load_factor()*bucket_count() æåçã
åæ°
| args | - | è¦è½¬åç»å ç´ æé 彿°çåæ° |
è¿åå¼
è¿åç±æå被æå ¥å ç´ ï¼æè¥ä¸åçæå ¥å为æ¢åå ç´ çè¿ä»£å¨ï¼åæä»£æå ¥æ¯å¦åçç bool ï¼è¥åçæå ¥å为 true ï¼å¦å为 false ï¼ã
å¼å¸¸
è¥ä»»ä½æä½æåºå¼å¸¸ï¼åæ¤å½æ°æ ææã
å¤æåº¦
å¹³å为åæå¸¸æ°ï¼æåæ åµä¸å®¹å¨å¤§å°æçº¿æ§ã
示ä¾
#include <iostream> #include <utility> #include <string> #include <unordered_map>  int main() { std::unordered_map<std::string, std::string> m;  // ä½¿ç¨ pair çç§»å¨æé 彿° m.emplace(std::make_pair(std::string("a"), std::string("a")));  // ä½¿ç¨ pair ç转æ¢ç§»å¨æé 彿° m.emplace(std::make_pair("b", "abcd"));  // ä½¿ç¨ pair çæ¨¡æ¿æé 彿° m.emplace("d", "ddd");  // ä½¿ç¨ pair çéçæé 彿° m.emplace(std::piecewise_construct, std::forward_as_tuple("c"), std::forward_as_tuple(10, 'c')); // C++17 èµ·ï¼è½ä½¿ç¨ m.try_emplace("c", 10, 'c');  for (const auto &p : m) { std::cout << p.first << " => " << p.second << '\n'; } }
å¯è½çè¾åºï¼
a => a b => abcd c => cccccccccc d => ddd
åé
| ä½¿ç¨æç¤ºå使é å
ç´ (å ¬å¼æå彿°) | |
| (C++17) |
è¥é®ä¸åå¨åå使å
¥ï¼è¥é®åå¨åä¸åä»»ä½äº (å ¬å¼æå彿°) |
| æå
¥å
ç´ æç»ç¹ (C++17 èµ·) (å ¬å¼æå彿°) |