如何从两个迭代器创建范围
刚开始使用 c++20 范围。我有一个问题是,如果你有两个迭代器到一个向量中,你如何从它们创建一个范围视图?Range 将从第一个迭代器开始,并在第二个迭代器之前结束 1。
回答
std::ranges::subrange 允许将迭代器和哨兵组合到一个视图中。
例如:
#include <iostream>
#include <vector>
#include <ranges>
int main()
{
std::vector v = {1, 2, 3, 4, 5};
std::ranges::subrange w(v.begin(), v.begin() + 2);
for (auto i : w)
std::cout << i << std::endl;
}