å约æç®æ³ (C++20 èµ·)
æ¥èªcppreference.com
C++20 å¨å½åç©ºé´ std::ranges
䏿ä¾å¤§å¤æ°ç®æ³çå约æçæ¬ï¼å¯ä»¥è¿ä»£å¨-å¨ä½å¯¹æå个 range
å®åæ¥æå®èå´ï¼å¹¶ä¸æ¯ææå½±åæåæåæéå¯è°ç¨å¯¹è±¡ãå¦å¤è¿æ´æ¹äºå¤§å¤æ°ç®æ³çè¿åç±»åï¼ä»¥è¿åç®æ³æ§è¡è¿ç¨ä¸è®¡ç®çæææ½å¨æç¨ä¿¡æ¯ã
ç®å½ |
[ç¼è¾] å约æç®æ³
卿 头
<algorithm> å®ä¹ | |
å¨å½å空é´
std::ranges å®ä¹ | |
ä¸ä¿®æ¹åºåçæä½ | |
(C++20)(C++20)(C++20) |
æ£æ¥è°è¯æ¯å¦å¯¹èå´ä¸ææã任䏿æ å
ç´ ä¸º true (niebloid) |
(C++20) |
åºç¨å½æ°å°èå´ä¸çå
ç´ (niebloid) |
(C++20) |
åºç¨å½æ°å¯¹è±¡å°åºåçå n 个å
ç´ (niebloid) |
(C++20)(C++20) |
è¿å满足æå®å¤å«æ åçå
ç´ æ° (niebloid) |
(C++20) |
寻æ¾ä¸¤ä¸ªèå´åºç°ä¸åçé¦ä¸ªä½ç½® (niebloid) |
(C++20) |
ç¡®å®ä¸¤ä¸ªå
ç´ é忝妿¯ç¸åç (niebloid) |
å½ä¸ä¸ªèå´æåå
¸é¡ºåºå°äºå¦ä¸ä¸ªèå´æ¶ï¼è¿å true (niebloid) | |
(C++20)(C++20)(C++20) |
æ¥æ¾æ»¡è¶³ç¹å®æ¡ä»¶çç第ä¸ä¸ªå
ç´ (niebloid) |
(C++23)(C++23)(C++23) |
æ¥æ¾æ»¡è¶³ç¹å®æ¡ä»¶çæåä¸ä¸ªå
ç´ (niebloid) |
(C++20) |
æ¥æ¾ç¹å®èå´ä¸æååºç°çå
ç´ åºå (niebloid) |
(C++20) |
æ¥æ¾å
ç´ éåä¸çä»»ä¸å
ç´ (niebloid) |
(C++20) |
æ¥æ¾é¦å¯¹ç¸é»çç¸åï¼ææ»¡è¶³ç»å®è°è¯çï¼å
ç´ (niebloid) |
(C++20) |
æç´¢ä¸ä¸ªå
ç´ èå´ (niebloid) |
(C++20) |
å¨èå´ä¸æç´¢ä¸å®éçæä¸ªå
ç´ çè¿ç»å¯æ¬ (niebloid) |
(C++23)(C++23) |
æ£æ¥èå´æ¯å¦å
å«ç»å®çå
ç´ æåèå´ (niebloid) |
(C++23) |
æ£æ¥ä¸ä¸ªèå´æ¯å¦å§äºå¦ä¸èå´ (niebloid) |
(C++23) |
æ£æ¥ä¸ä¸ªèå´æ¯å¦ç»äºå¦ä¸èå´ (niebloid) |
ä¿®æ¹åºåçæä½ | |
(C++20)(C++20) |
å°æä¸èå´çå
ç´ å¤å¶å°ä¸ä¸ªæ°çä½ç½® (niebloid) |
(C++20) |
å°ä¸å®æ°ç®çå
ç´ å¤å¶å°ä¸ä¸ªæ°çä½ç½® (niebloid) |
(C++20) |
æä»åå¾åç顺åºå¤å¶ä¸ä¸ªèå´å
çå
ç´ (niebloid) |
(C++20) |
å°æä¸èå´çå
ç´ ç§»å¨å°ä¸ä¸ªæ°çä½ç½® (niebloid) |
(C++20) |
æä»åå¾åç顺åºç§»å¨æä¸èå´çå
ç´ å°æ°çä½ç½® (niebloid) |
(C++20) |
以ç¹å®å¼åèå´çåå
ç´ èµå¼ (niebloid) |
(C++20) |
å°ä¸ä¸ªå¼å¤å¶èµå¼ç»ä¸å®éçå
ç´ (niebloid) |
(C++20) |
å°ä¸ä¸ªå½æ°åºç¨äºæä¸èå´çå个å
ç´ (niebloid) |
(C++20) |
ä¿å彿°ç»æå°ä¸ä¸ªèå´ä¸ (niebloid) |
(C++20) |
ä¿å N æ¬¡å½æ°åºç¨çç»æ (niebloid) |
(C++20)(C++20) |
ç§»é¤æ»¡è¶³ç¹å®å¤å«æ åçå
ç´ (niebloid) |
(C++20)(C++20) |
å¤å¶ä¸ä¸ªèå´çå
ç´ ï¼å¿½ç¥æ»¡è¶³ç¹å®å¤å«æ åçå
ç´ (niebloid) |
(C++20)(C++20) |
å°æææ»¡è¶³ç¹å®å¤å«æ åç弿¿æ¢ä¸ºå¦ä¸ä¸ªå¼ (niebloid) |
(C++20)(C++20) |
å¤å¶ä¸ä¸ªèå´å
çå
ç´ ï¼å¹¶å°æ»¡è¶³ç¹å®å¤å«æ åçå
ç´ æ¿æ¢ä¸ºå¦ä¸ä¸ªå¼ (niebloid) |
(C++20) |
交æ¢ä¸¤ä¸ªèå´çå
ç´ (niebloid) |
(C++20) |
é转èå´ä¸çå
ç´ é¡ºåº (niebloid) |
(C++20) |
å建ä¸ä¸ªèå´çéå坿¬ (niebloid) |
(C++20) |
æè½¬èå´ä¸çå
ç´ é¡ºåº (niebloid) |
(C++20) |
å¤å¶å¹¶æè½¬å
ç´ èå´ (niebloid) |
(C++20) |
éæºéæèå´ä¸çå
ç´ (niebloid) |
è¿ç§»èå´ä¸çå
ç´ (niebloid) | |
(C++20) |
ä»åºåä¸éæºéæ© n 个å
ç´ (niebloid) |
(C++20) |
ç§»é¤èå´ä¸çè¿ç»éå¤å
ç´ (niebloid) |
(C++20) |
å建æèå´çä¸å«è¿ç»éå¤å
ç´ ç坿¬ (niebloid) |
ååæä½ | |
(C++20) |
夿èå´æ¯å¦å·²æç»å®çè°è¯åå (niebloid) |
(C++20) |
å°èå´ä¸çå
ç´ å为äºç» (niebloid) |
(C++20) |
å¤å¶ä¸ä¸ªèå´ï¼å°åå
ç´ å为äºç» (niebloid) |
(C++20) |
å°å
ç´ åæäºç»ï¼åæ¶ä¿æå
¶ç¸å¯¹é¡ºåº (niebloid) |
(C++20) |
å®ä½å·²ååèå´çååç¹ (niebloid) |
æåºæä½ | |
(C++20) |
æ£æ¥èå´æ¯å¦ä»¥ååºæåº (niebloid) |
(C++20) |
å¯»æ¾æå¤§çæåºåèå´ (niebloid) |
(C++20) |
å°èå´æååºæåº (niebloid) |
(C++20) |
æåºä¸ä¸ªèå´çå N 个å
ç´ (niebloid) |
(C++20) |
对èå´å
çå
ç´ è¿è¡å¤å¶å¹¶é¨åæåº (niebloid) |
(C++20) |
å°èå´å
çå
ç´ æåºï¼åæ¶ä¿æç¸ççå
ç´ ä¹é´çé¡ºåº (niebloid) |
(C++20) |
å°ç»å®çèå´é¨åæåºï¼ç¡®ä¿å
¶æç»å®å
ç´ åå (niebloid) |
äºåæç´¢æä½ï¼å¨æåºèå´ä¸ï¼ | |
(C++20) |
è¿åæåé¦ä¸ªä¸å°äºç»å®å¼çå
ç´ çè¿ä»£å¨ (niebloid) |
(C++20) |
è¿åæåé¦ä¸ªå¤§äºæå¼çå
ç´ çè¿ä»£å¨ (niebloid) |
(C++20) |
ç¡®å®å
ç´ æ¯å¦åå¨äºæèå´ä¸ (niebloid) |
(C++20) |
è¿åå¹é
ç¹å®é®çå
ç´ èå´ (niebloid) |
éåæä½ï¼å¨æåºèå´ä¸ï¼ | |
(C++20) |
å½å¹¶ä¸¤ä¸ªæåºèå´ (niebloid) |
(C++20) |
å¨åä½å½å¹¶ä¸¤ä¸ªæåºèå´ (niebloid) |
(C++20) |
è¥ä¸ä¸ªåºåæ¯å¦ä¸ä¸ªçåååè¿å true (niebloid) |
(C++20) |
计ç®ä¸¤ä¸ªéåçå·®é (niebloid) |
(C++20) |
计ç®ä¸¤ä¸ªéåç交é (niebloid) |
计ç®ä¸¤ä¸ªéåç对称差 (niebloid) | |
(C++20) |
计ç®ä¸¤ä¸ªéåçå¹¶é (niebloid) |
å æä½ | |
(C++20) |
æ£æ¥ç»å®èå´æ¯å¦ä¸ºæå¤§å (niebloid) |
(C++20) |
寻æ¾è½æä¸ºæå¤§å çæå¤§åèå´ (niebloid) |
(C++20) |
ä»ä¸ä¸ªå
ç´ èå´å建åºä¸ä¸ªæå¤§å (niebloid) |
(C++20) |
å°ä¸ä¸ªå
ç´ å å
¥å°ä¸ä¸ªæå¤§å (niebloid) |
(C++20) |
仿大å ä¸ç§»é¤æå¤§å
ç´ (niebloid) |
(C++20) |
å°ä¸ä¸ªæå¤§å åæä¸ä¸ªæååºæåºçå
ç´ èå´ (niebloid) |
æå°/æå¤§æä½ | |
(C++20) |
è¿åç»å®å¼çè¾å¤§è
(niebloid) |
(C++20) |
è¿åèå´ä¸çæå¤§å
ç´ (niebloid) |
(C++20) |
è¿åç»å®å¼çè¾å°è
(niebloid) |
(C++20) |
è¿åèå´ä¸çæå°å
ç´ (niebloid) |
(C++20) |
è¿å两个å
ç´ çè¾å°åè¾å¤§è
(niebloid) |
(C++20) |
è¿åèå´ä¸çæå°åæå¤§å
ç´ (niebloid) |
(C++20) |
å¨ä¸å¯¹è¾¹çå¼é´å¤¹ä¸ä¸ªå¼ (niebloid) |
æåæä½ | |
(C++20) |
ç¡®å®ä¸ä¸ªåºåæ¯å¦ä¸ºå¦ä¸åºåçæå (niebloid) |
(C++20) |
产çæä¸ªå
ç´ èå´çæåå
¸åºä¸ä¸ä¸ªè¾å¤§çæå (niebloid) |
(C++20) |
产çæä¸ªå
ç´ èå´çæåå
¸åºä¸ä¸ä¸ªè¾å°çæå (niebloid) |
[ç¼è¾] å约æçæ°å¼æä½
卿 头
<numeric> å®ä¹ | |
å¨å½å空é´
std::ranges å®ä¹ | |
(C++23) |
ç¨ä»èµ·å§å¼å¼å§è¿ç»éå¢çå¼å¡«å
ä¸ä¸ªèå´ (niebloid) |
[ç¼è¾] å约æçæå æä½
卿 头
<algorithm> å®ä¹ | |
å¨å½å空é´
std::ranges å®ä¹ | |
(C++23) |
å·¦æå èå´å
çå
ç´ (niebloid) |
(C++23) |
ç¨ç¬¬ä¸ä¸ªå
ç´ ä½ä¸ºåå§å¼å·¦æå èå´å
çå
ç´ (niebloid) |
(C++23) |
峿å èå´å
çå
ç´ (niebloid) |
(C++23) |
ä½¿ç¨æåä¸ä¸ªå
ç´ çå¼ä¸ºåå§å¼å³æå èå´å
çå
ç´ (niebloid) |
(C++23) |
å·¦æå èå´å
çå
ç´ ï¼å¹¶ä¸è¿å ä¸å¯¹ï¼è¿ä»£å¨ï¼å¼ï¼ (niebloid) |
ç¨ç¬¬ä¸ä¸ªå
ç´ ä½ä¸ºåå§å¼å·¦æå èå´å
çå
ç´ å¹¶è¿åä¸å¯¹ï¼è¿ä»£å¨ï¼å¯éå¼ï¼ (niebloid) |
[ç¼è¾] å约æçæªåå§åå åç®æ³
卿 头
<memory> å®ä¹ | |
å¨å½å空é´
std::ranges å®ä¹ | |
(C++20) |
å¤å¶å
ç´ èå´å°æªåå§åçå
ååºå (niebloid) |
(C++20) |
å¤å¶ä¸å®éå
ç´ å°æªåå§åçå
ååºå (niebloid) |
(C++20) |
å¤å¶ä¸ä¸ªå¯¹è±¡å°èå´æå®ä¹çæªåå§åçå
ååºå (niebloid) |
(C++20) |
å¤å¶ä¸ä¸ªå¯¹è±¡å°èµ·å§ä¸è®¡æ°æå®ä¹çæªåå§åçå
ååºå (niebloid) |
(C++20) |
ç§»å¨å¯¹è±¡èå´å°æªåå§åçå
ååºå (niebloid) |
(C++20) |
ç§»å¨ä¸å®éå¯¹è±¡å°æªåå§åçå
ååºå (niebloid) |
å¨èå´æå®ä¹çæªåå§åçå
ååºå以é»è®¤åå§åæé 对象 (niebloid) | |
å¨èµ·å§ä¸è®¡æ°æå®ä¹çæªåå§åçå
ååºå以é»è®¤åå§åæé 对象 (niebloid) | |
å¨èå´æå®ä¹çæªåå§åçå
ååºå以å¼åå§åæé 对象 (niebloid) | |
å¨èµ·å§ä¸è®¡æ°æå®ä¹çæªåå§åçå
ååºå以å¼åå§åæé 对象 (niebloid) | |
(C++20) |
鿝èå´ä¸çå
ç´ (niebloid) |
(C++20) |
鿝èå´ä¸ä¸å®éçå
ç´ (niebloid) |
(C++20) |
鿝ä½äºç»å®å°åçå
ç´ (niebloid) |
(C++20) |
å¨ç»å®å°åå建对象 (niebloid) |
[ç¼è¾] å约æçéæºæ°ç®æ³
卿 头
<random> å®ä¹ | |
å¨å½å空é´
std::ranges å®ä¹ | |
(C++26) |
ç¨æ¥èªååéæºä½åçå¨çéæºæ°å¡«å
èå´ (niebloid) |
[ç¼è¾] è¿åç±»å
卿 头
<algorithm> å®ä¹ | |
å¨å½å空é´
std::ranges å®ä¹ | |
(C++20) |
æä¾åå¨ä¸ä¸ªè¿ä»£å¨ä¸ä¸ä¸ªå½æ°å¯¹è±¡ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++20) |
æä¾åå¨äºä¸ªè¿ä»£å¨ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++20) |
æä¾åå¨äºä¸ªè¿ä»£å¨ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++20) |
æä¾åå¨ä¸ä¸ªè¿ä»£å¨ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++20) |
æä¾åå¨ä¸ä¸ªè¿ä»£å¨ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++20) |
æä¾åå¨äºä¸ªåç±»å对象æå¼ç¨ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++20) |
æä¾åå¨ä¸ä¸ªè¿ä»£å¨ä¸ä¸ä¸ªå¸å°æ å¿ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++23) |
æä¾å¨åä¸ä¸ªè¿ä»£å¨åä¸ä¸ªå¼ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
(C++23) |
æä¾å¨åä¸ä¸ªè¿ä»£å¨åä¸ä¸ªå¼ä¸ºå个åå
çæ¹å¼ (类模æ¿) |
[ç¼è¾] 注解
åè½ç¹æ§æµè¯å® | å¼ | æ å | åè½ç¹æ§ |
---|---|---|---|
__cpp_lib_algorithm_default_value_type |
202403L | (C++26) | ç®æ³çå表åå§å |
__cpp_lib_ranges |
201911L | (C++20) | èå´åºåå约æç®æ³ |
__cpp_lib_ranges_contains |
202207L | (C++23) | std::ranges::contains |
__cpp_lib_ranges_find_last |
202207L | (C++23) | std::ranges::find_last |
__cpp_lib_ranges_fold |
202207L | (C++23) | std::ranges fold algorithms
|
__cpp_lib_ranges_iota |
202202L | (C++23) | std::ranges::iota |
__cpp_lib_ranges_starts_ends_with |
202106L | (C++23) | std::ranges::starts_with, std::ranges::ends_with |
__cpp_lib_shift |
201806L | (C++20) | std::shift_left, std::shift_right |
202202L | (C++23) | std::ranges::shift_left, std::ranges::shift_right | |
__cpp_lib_ranges_generate_random |
202403L | (C++26) | std::ranges::generate_random |