C++ STL ranges
0
C++20
在STL
库里面提供ranges
头文件,通过这个可以实现类似Java
流一样的链式编程:
#include <vector>
#include <ranges>
#include <iostream>
int main() {
std::vector<int> v{ 1, 2, 3, 4 };
auto c{
v |
std::ranges::views::filter([](const auto& i) { return i % 2 == 0; }) |
std::ranges::views::reverse |
std::ranges::views::take(1)
};
for(const auto& x : v) {
std::cout << x << '\n';
}
std::cout << "====" << '\n';
for(const auto& x : c) {
std::cout << x << '\n';
}
return 0;
}
g++ -std=c++20 demo.cpp