Linq: 现代 C++ 的强大列表处理库
摘要
本文解释如何使用 linq 处理数据。该库支持过滤、选择、聚合、分组等操作。完整支持需要 clang 或 gcc,及 boost。
如何使用
这是一个 Header only 库。只需将 C++ header 集成到项目环境。完成后即可使用 linq 函数。
Select
std::vector<int> v = { 1, 2, 4 }; //linq form auto q = LINQ(from(x, v) select(x * 3)); //q -> result {3,6,12} //extension form auto r = v | linq::select([](int x) { return x * 3; });
OrderBy
std::vector<int> v = { 4, 2, 8 }; //linq form auto q = LINQ(from(x, v) orderby( descending x) select(x)); //q -> result {8,4,2}
Where
vector<int> v = { 1, 3, 4, 5 }; auto q = LINQ(from(i, v) where(i % 2)); //q -> result {4} //extension form auto r = v | linq::where([](int x){ return x % 2}) | linq::select([](int x) { return x; });
更多信息
若对 linq 感兴趣,可查看以下链接:
- GitHub: https://github.com/pfultz2/Linq
- Website: https://pfultz2.github.io/Linq/
许可证
库采用 Boost Software License 1.0 发布
工业技术