C++98 以来的 STL 算法库一直有一个尴尬的体验:算法威力强大,但调用方式令人难受——std::sort(v.begin(), v.end()) 写了几十年。当你需要把"筛选、变换、去重、排序"组合起来时,每次中间操作都要分配新容器,或者把 begin/end 反复传递。
C++20 Ranges 彻底改变了这一局面。它把 STL 从"基于迭代器对"升级为"基于范围"的编程模型,并引入 views 管道——链式调用、懒惰求值、零拷贝中间结果。
2026/5/6大约 5 分钟
C++98 以来的 STL 算法库一直有一个尴尬的体验:算法威力强大,但调用方式令人难受——std::sort(v.begin(), v.end()) 写了几十年。当你需要把"筛选、变换、去重、排序"组合起来时,每次中间操作都要分配新容器,或者把 begin/end 反复传递。
C++20 Ranges 彻底改变了这一局面。它把 STL 从"基于迭代器对"升级为"基于范围"的编程模型,并引入 views 管道——链式调用、懒惰求值、零拷贝中间结果。