// ❌ 场景 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