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_multiset
- std::unordered_multimap
- std::stack
- std::queue
- std::vector<bool>
- ç»ç¹ææ (C++17)
- 注é
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå > 容å¨åº
容å¨åº
容å¨åºæ¯ç±»æ¨¡æ¿ä¸ç®æ³çæ±éï¼å 许ç¨åºåç®åå°è®¿é®å¸¸è§æ°æ®ç»æï¼ä¾å¦éåãé¾è¡¨åæ ãæä¸ç±»å®¹å¨ââ顺åºå®¹å¨ãå ³è容å¨åæ åºå ³è容å¨ââæ¯ç§é½è¢«è®¾è®¡ä¸ºæ¯æä¸åç»çæä½ã
容å¨ç®¡çä¸ºå ¶å ç´ åé çåå¨ç©ºé´ï¼å¹¶æä¾ç´æ¥æé´æ¥å°éè¿è¿ä»£å¨ï¼æ¥æç±»ä¼¼æé屿§ç对象ï¼è®¿é®å®ä»¬ç彿°ã
大夿°å®¹å¨æ¥æè³å°å 个常è§çæå彿°ï¼å¹¶å ±äº«åè½ãç¹å®åºç¨çæä½³å®¹å¨ä¸ä» ä¾èµäºæä¾çåè½ï¼è¿ä¾èµäºå¯¹äºä¸åå·¥ä½éçæçã
ç®å½ |
顺åºå®¹å¨
顺åºå®¹å¨å®ç°è½æé¡ºåºè®¿é®çæ°æ®ç»æã
| (C++11) |
éæçè¿ç»æ°ç» (类模æ¿) |
| 卿çè¿ç»æ°ç» (类模æ¿) | |
| å端éå (类模æ¿) | |
| (C++11 èµ·) |
åé¾è¡¨ (类模æ¿) |
| åé¾è¡¨ (类模æ¿) |
å ³è容å¨
å ³è容å¨å®ç°è½å¿«éæ¥æ¾ï¼ O(log n) å¤æåº¦ï¼çæ°æ®ç»æã
| å¯ä¸é®çéåï¼æç
§é®æåº (类模æ¿) | |
| é®å¼å¯¹çéåï¼æç
§é®æåºï¼é®æ¯å¯ä¸ç (类模æ¿) | |
| é®çéåï¼æç
§é®æåº (类模æ¿) | |
| é®å¼å¯¹çéåï¼æç
§é®æåº (类模æ¿) |
æ åºå ³è容å¨
æ åºå ³è容卿ä¾è½å¿«éæ¥æ¾ï¼åæ O(1) ï¼æåæ åµ O(n) çå¤æåº¦ï¼çæ åºï¼åå¸ï¼æ°æ®ç»æã
| (C++11 èµ·) |
å¯ä¸é®çéåï¼æç
§é®çææ£å (类模æ¿) |
| (C++11 èµ·) |
é®å¼å¯¹çéåï¼æç
§é®çææ£åï¼é®æ¯å¯ä¸ç (类模æ¿) |
| (C++11 èµ·) |
é®çéåï¼æç
§é®çææ£å (类模æ¿) |
| (C++11 èµ·) |
é®å¼å¯¹çéåï¼æç
§é®çææ£å (类模æ¿) |
容å¨éé å¨
容å¨éé 卿ä¾é¡ºåºå®¹å¨çä¸åæ¥å£ã
| éé
ä¸ä¸ªå®¹å¨ä»¥æä¾æ ï¼LIFO æ°æ®ç»æï¼ (类模æ¿) | |
| éé
ä¸ä¸ªå®¹å¨ä»¥æä¾éåï¼FIFO æ°æ®ç»æï¼ (类模æ¿) | |
| éé
ä¸ä¸ªå®¹å¨ä»¥æä¾ä¼å
级éå (类模æ¿) |
span
span æ¯ç¸æ¥ç对象åºåä¸çéå æè§å¾ï¼æä¸ªå
¶ä»å¯¹è±¡å æåºåçåå¨ã
| (C++20) |
对象çè¿ç»åºåä¸çæ æææè§å¾ (类模æ¿) |
è¿ä»£å¨éæ³å
åªè¯»æ¹æ³å³ä¸éæ³åè¿ä»£å¨æå¼ç¨ãä¿®æ¹å®¹å¨å å®¹çæ¹æ³å¯è½éæ³åè¿ä»£å¨å/æå¼ç¨ï¼æ»ç»äºæ¤è¡¨æ ¼ã
| ç±»å« | å®¹å¨ | æå ¥åâ¦â¦ | æ¦é¤åâ¦â¦ | æ¡ä»¶ | ||
|---|---|---|---|---|---|---|
| è¿ä»£å¨åæ³ï¼ | å¼ç¨åæ³ï¼ | è¿ä»£å¨åæ³ï¼ | å¼ç¨åæ³ï¼ | |||
| 顺åºå®¹å¨ | array | N/A | N/A | |||
| vector | å¦ | N/A | æå ¥æ´æ¹å®¹é | |||
| æ¯ | æ¯ | 被修æ¹å ç´ å | ||||
| å¦ | å¦ | äºè¢«ä¿®æ¹å ç´ æå ¶å | ||||
| deque | å¦ | æ¯ | æ¯ï¼é¤äºè¢«æ¦é¤å ç´ | ä¿®æ¹é¦æå°¾å ç´ | ||
| å¦ | å¦ | ä» ä¿®æ¹ä¸é¨ | ||||
| list | æ¯ | æ¯ï¼é¤äºè¢«æ¦é¤å ç´ | ||||
| forward_list | æ¯ | æ¯ï¼é¤äºè¢«æ¦é¤å ç´ | ||||
| å ³èå®¹å¨ | set | æ¯ | æ¯ï¼é¤äºè¢«æ¦é¤å ç´ | |||
| æ åºå ³èå®¹å¨ | unordered_set | å¦ | æ¯ | N/A | æå ¥å¯¼è´éåå¸ | |
| æ¯ | æ¯ï¼é¤äºè¢«æ¦é¤å ç´ | æ éåå¸ | ||||
æ¤å¤æå ¥æä»£ä»»ä½æ·»å 䏿å¤ä¸ªå ç´ å°å®¹å¨çæ¹æ³ï¼èæ¦é¤æä»£ä»»ä½ä»å®¹å¨ç§»é¤ä¸æå¤ä¸ªå ç´ çæ¹æ³ã
- æå
¥æ¹æ³çä¾åæ¯ std::set::insert ã std::map::emplace ã std::vector::push_back å std::deque::push_front ã
- 注æ std::unordered_map::operator[] ä¹ç®ï¼å 为å®å¯è½æå ¥å ç´ å° map ä¸ã
- æ¦é¤æ¹æ³çä¾åæ¯ std::set::erase ã std::vector::pop_back ã std::deque::pop_front å std::map::clear ã
-
clear鿳忿è¿ä»£å¨åå¼ç¨ãå ä¸ºå®æ¦é¤ææå ç´ ï¼è¿å¨ææ¯ä¸éµç §ä¸è¿°è§åã
-
å°¾åè¿ä»£å¨éè¦ç¹å«çæãé常åæåæªè¢«æ¦é¤å ç´ çæ£å¸¸è¿ä»£å¨ä¸è¬éæ³åæ¤è¿ä»£å¨ãæ std::set::end å³ä¸è¢«éæ³åï¼ std::unordered_set::end ä» å¨éå叿¶è¢«éæ³åï¼ std::vector::end å§ç»è¢«éæ³åï¼å 为å®å§ç»åºç°å¨è¢«ä¿®æ¹å ç´ åï¼ï¼ä»¥æ¤ç±»æ¨ã
æä¸ä¸ªä¾å¤ï¼å é¤ std::deque æ«å ç´ çæ¦é¤æä½ä¼éæ³åå°¾åè¿ä»£å¨ï¼å°½ç®¡å®ä¸æ¯å®¹å¨ç被æ¦é¤å ç´ ï¼æè è¯´æ ¹æ¬ä¸æ¯å ç´ ï¼ãä¸ std::deque è¿ä»£å¨çéç¨è§åç»ååï¼æç»ç»ææ¯ä¸éæ³å std::deque::end çå¯ä¸ä¿®æ¹æä½æ¯å é¤é¦å ç´ ï¼èéæ«å ç´ çæ¦é¤ã
线ç¨å®å ¨
|
(C++11 èµ·) |
æå彿°è¡¨æ ¼
| - C++03 èµ·åå¨ç彿° | |
| - C++11 èµ·åå¨ç彿° | |
| - C++17 èµ·åå¨ç彿° | |
| - C++20 èµ·åå¨ç彿° |