文档目录
// ❌ 场景 1:你需要多次遍历同一结果
auto filtered = data | std::views::filter(...);
for (int x : filtered) { ... }  // 第一次遍历:计算
for (int x : filtered) { ... }  // 第二次遍历:重新计算(性能浪费!)

// ✅ 应该把结果收集到容器中
auto filtered_vec = data
    | std::views::filter(...)
    | std::ranges::to<std::vector>();  // C++23

// ❌ 场景 2:你的操作有副作用,且依赖执行顺序
// filter/transform 的计算顺序不是从左到右严格保证的

// ✅ 什么时候应该无脑用 Ranges?
// 当你只需要遍历一次,且不需要持有结果时——天生适合 Ranges