| View |
作用 |
什么时候用 |
filter(pred) |
筛选满足条件的元素 |
过滤无效数据、错误剔除 |
transform(func) |
对每个元素做转换 |
数据类型转换、字段提取、数值计算 |
take(N) |
取前 N 个 |
分页(取第 1 页)、取 TopK |
drop(N) |
跳过前 N 个 |
分页(跳过前一页) |
reverse |
反转顺序 |
最近操作记录(最新在最前) |
join |
展平嵌套容器 |
vector<vector<int>> 变 vector<int> |
split(delim) |
按分隔符分割 |
CSV 解析、命令行参数分割 |
组合使用案例:日志分析#
std::vector<LogEntry> logs = get_logs();
// 需求:找出最近 10 条 ERROR 级别的错误消息,按倒序显示
auto recent_errors = logs
| std::views::filter([](const LogEntry& e) { return e.level == "ERROR"; })
| std::views::reverse // 最新的在前面
| std::views::take(10) // 只要 10 条
| std::views::transform([](const LogEntry& e) { return e.message; });
// 一次遍历完成,没有中间容器,没有多余拷贝