C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç¨åºæ¯æå·¥å ·
- std::initializer_list
- 彿°å¯¹è±¡
- std::less
- std::mem_fn
- std::bind
- std::function
- std::bad_function_call
- std::is_bind_expression
- std::is_placeholder
- std::placeholders::_1, std::placeholders::_2, ..., std::placeholders::_N
- std::invoke
- std::not_fn
- std::bind_front
- std::boyer_moore_searcher
- std::default_searcher
- std::identity
- std::reference_wrapper
- std::ref, std::cref
- std::unwrap_reference, std::unwrap_ref_decay
- std::plus
- std::minus
- std::negate
- std::multiplies
- std::divides
- std::modulus
- std::logical_and
- std::logical_or
- std::logical_not
- std::equal_to
- std::not_equal_to
- std::greater
- std::greater_equal
- std::less_equal
- std::bit_and
- std::bit_or
- std::bit_xor
- std::bit_not
- std::boyer_moore_horspool_searcher
- std::unary_function
- std::binary_function
- std::ptr_fun
- std::pointer_to_unary_function
- std::pointer_to_binary_function
- std::mem_fun_t, std::mem_fun1_t, std::const_mem_fun_t, std::const_mem_fun1_t
- std::not1
- std::not2
- std::bind1st, std::bind2nd
- std::mem_fun_ref_t, std::mem_fun1_ref_t, std::const_mem_fun_ref_t, std::const_mem_fun1_ref_t
- std::unary_negate
- std::binary_negate
- std::less<void>
- std::apply
- åºç¹æ§æµè¯å® (C++20)
- std::hash
- std::pair
- std::tuple
- std::optional
- std::any
- std::variant
- æ ¼å¼ååº (C++20)
- std::integer_sequence
- std::exchange
- std::make_from_tuple
- std::launder
- std::to_chars
- std::from_chars
- std::as_const
- std::source_location
- å忰彿°
- std::bitset
- std::cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal, cmp_greater_equal
- std::in_range
- std::declval
- std::forward
- std::move
- std::move_if_noexcept
- std::chars_format
- std::piecewise_construct_t
- std::piecewise_construct
- std::in_place, std::in_place_type, std::in_place_index, std::in_place_t, std::in_place_type_t, std::in_place_index_t
- 注é
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >å·¥å ·åº > 彿°å¯¹è±¡
彿°å¯¹è±¡
ä»»ä½å®ä¹äºå½æ°è°ç¨æä½ç¬¦çå¯¹è±¡é½æ¯å½æ°å¯¹è±¡ãC++ æ¯æå建ãæä½æ°ç彿°å¯¹è±¡ï¼åæ¶ä¹æä¾äºè®¸å¤å ç½®ç彿°å¯¹è±¡ã
彿°å è£ å¨
std::function æä¾åå¨ä»»æç±»å彿°å¯¹è±¡çæ¯æã
| (C++11) |
å
è£
å
·ææå®å½æ°è°ç¨ç¾åçä»»æç±»åçå¯è°ç¨å¯¹è±¡ (类模æ¿) |
| (C++11) |
è°ç¨ç©ºç std::function æ¶æåºçå¼å¸¸ (ç±») |
| (C++11) |
仿åæéå建åºå½æ°å¯¹è±¡ (彿°æ¨¡æ¿) |
彿°è°ç¨
std::invoke è½ä»¥ç»å®åæ°è°ç¨ä»»ä½å¯è°ç¨ (Callable) 对象ã
| (C++17) |
以ç»å®å®åè°ç¨ä»»æå¯è°ç¨ (Callable) 对象 (彿°æ¨¡æ¿) |
æç
std::identity æ¯æç彿°å¯¹è±¡ï¼å®è¿åå ¶ä¸ä¿®æ¹çåæ°ã
| (C++20) |
è¿åå
¶æªä¿®æ¹çåæ°ç彿°å¯¹è±¡ (ç±») |
é¨å彿°åºç¨
std::bind_front ä¸ std::bind æä¾é¨å彿°åºç¨çæ¯æï¼å³ç»å®åæ°å°å½æ°ä»¥å建æ°å½æ°ã
| (C++20) |
æé¡ºåºç»å®ä¸å®æ°éçåæ°å°å½æ°å¯¹è±¡ (彿°æ¨¡æ¿) |
| (C++11) |
ç»å®ä¸æå¤ä¸ªå®åå°å½æ°å¯¹è±¡ (彿°æ¨¡æ¿) |
| (C++11) |
æç¤ºå¯¹è±¡ä¸º std::bind 表达å¼ï¼æè½è¢«ç¨ä½è¿ç§è¡¨è¾¾å¼ (类模æ¿) |
| (C++11) |
表æä¸ä¸ªå¯¹è±¡æ¯æ åå ä½ç¬¦ï¼æè
å¯ä»¥ç¨ä½æ åå ä½ç¬¦ (类模æ¿) |
| å®ä¹äºå½å空é´
std::placeholders | |
| (C++11) |
ç¨ä½ std::bind 表达å¼ä¸çæªç»å®å®åçå ä½ç¬¦ (常é) |
ååå¨
std::not_fn åå»ºå¯¹ä¼ éç»å®çå¯è°ç¨å¯¹è±¡çç»æååç彿°å¯¹è±¡ã
| (C++17) |
å建è¿åå
¶ä¿æç彿°å¯¹è±¡çç»æä¹è¡¥ç彿°å¯¹è±¡ (彿°æ¨¡æ¿) |
æç´¢å¨
æä¾å®ç°æ°ç§å符串æç´¢ç®æ³çæç´¢å¨ãå®ä»¬è½ç´æ¥ä½¿ç¨æç¨äº std::search ã
| (C++17) |
æ å C++ åºæç´¢ç®æ³å®ç° (类模æ¿) |
| (C++17) |
Boyer-Moore æç´¢ç®æ³å®ç° (类模æ¿) |
| Boyer-Moore-Horspool æç´¢ç®æ³å®ç° (类模æ¿) |
å¼ç¨å è£ å¨
å¼ç¨å è£ å¨å 许åå¨å¼ç¨å°å¯å¤å¶ç彿°å¯¹è±¡ä¸ï¼
| (C++11) |
å¯å¤å¶æé (CopyConstructible) ä¸å¯å¤å¶èµå¼ (CopyAssignable) çå¼ç¨å
è£
å¨ (类模æ¿) |
| (C++11)(C++11) |
å建å
ᾊȌ
¶å®åæ¨å¯¼çç±»åç std::reference_wrapper (彿°æ¨¡æ¿) |
| (C++20)(C++20) |
è·åå
è£
äº std::reference_wrapper çå¼ç¨ç±»å (类模æ¿) |
è¿ç®ç¬¦å½æ°å¯¹è±¡
C++ é对常ç¨çç®æ¯åé»è¾è¿ç®å®ä¹äºå¾å¤å½æ°å¯¹è±¡ï¼
ç®æ¯è¿ç® | |
| å®ç° x + y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x - y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x * y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x / y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x % y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° -x ç彿°å¯¹è±¡ (类模æ¿) | |
æ¯è¾ | |
| å®ç° x == y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x != y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x > y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x < y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x >= y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x <= y ç彿°å¯¹è±¡ (类模æ¿) | |
é»è¾è¿ç® | |
| å®ç° x && y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x || y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° !x ç彿°å¯¹è±¡ (类模æ¿) | |
ä½è¿ç® | |
| å®ç° x & y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x | y ç彿°å¯¹è±¡ (类模æ¿) | |
| å®ç° x ^ y ç彿°å¯¹è±¡ (类模æ¿) | |
| (C++14) |
å®ç° ~x ç彿°å¯¹è±¡ (类模æ¿) |
æå¶çº¦çæ¯è¾å½æ°å¯¹è±¡ (C++20)
C++20 å®ä¹ä¸ç»æå¶çº¦çæ¯è¾å½æ°å¯¹è±¡ãç¸çè¿ç®ç¬¦ (ranges::equal_to ä¸ ranges::not_equal_to) è¦æ±åæ°ç±»åå®ç° equality_comparable_with ãå
³ç³»è¿ç®ç¬¦ï¼ ranges::less ã ranges::greater ã ranges::less_equal å ranges::greater_equal ï¼è¦æ±åæ°ç±»åå®ç° totally_ordered_with ã
| (C++20) |
å®ç° x == y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x != y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x < y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x > y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x <= y ç彿°å¯¹è±¡ (ç±») |
| (C++20) |
å®ç° x >= y ç彿°å¯¹è±¡ (ç±») |
æ§å¼ç»å®å¨ä¸éé å¨
æ©ææä¾åè½æ¯æçå ä¸ªå·¥å ·å¨ C++11 ä¸å¼ç¨ï¼å¹¶äº C++17 ä¸ç§»é¤ï¼æ§å¦å®å¨äº C++17 ä¸å¼ç¨å¹¶äº C++20 ä¸ç§»é¤ï¼ï¼
åºç±» | |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ä¸éé
å¨å
¼å®¹çä¸å
彿°åºç±» (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ä¸éé
å¨å
¼å®¹çäºå
彿°åºç±» (类模æ¿) |
ç»å®å¨ | |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ææä¸ä¸ªäºå
彿°åå
¶å®åä¹ä¸ç彿°å¯¹è±¡ (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
å°ä¸ä¸ªå®åç»å®å°äºå
彿° (彿°æ¨¡æ¿) |
彿°éé å¨ | |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
éé
å¨å
¼å®¹çå
è£
ï¼ç¨äºå
è£
ä¸å
彿°çæé (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
éé
å¨å
¼å®¹çå
è£
ï¼ç¨äºå
è£
äºå
彿°çæé (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
ä»å½æ°æéå建ä¸éé
å¨å
¼å®¹ç彿°å¯¹è±¡å
è£
å¨ (彿°æ¨¡æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
æåé¶å
æä¸å
æå彿°æéçå
è£
å¨ï¼å¯ä»¥ä¸ä¸ªå¯¹è±¡æéè°ç¨ (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
仿å彿°æéå建å
è£
å¨ï¼å¯ä»¥ä¸ä¸ªå¯¹è±¡æéè°ç¨ (彿°æ¨¡æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
æåé¶å
æä¸å
æå彿°æéçå
è£
å¨ï¼å¯ä»¥ä¸ä¸ªå¯¹è±¡å¼ç¨è°ç¨ (类模æ¿) |
| (C++11 ä¸å¼ç¨)(C++17 ä¸ç§»é¤) |
仿å彿°æéå建å
è£
å¨ï¼è½ä»¥ä¸ä¸ªå¯¹è±¡å¼ç¨è°ç¨ (彿°æ¨¡æ¿) |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
å
è£
å¨å½æ°å¯¹è±¡ï¼è¿åæææçä¸å
è°è¯çè¡¥ (类模æ¿) |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
å
è£
å¨å½æ°å¯¹è±¡ï¼è¿åæææçäºå
è°è¯çè¡¥ (类模æ¿) |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
æé å®å¶ç std::unary_negate 对象 (彿°æ¨¡æ¿) |
| (C++17 ä¸å¼ç¨)(C++20 ä¸ç§»é¤) |
æé å®å¶ç std::binary_negate 对象 (彿°æ¨¡æ¿) |