如何从两个迭代器创建范围

刚开始使用 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;
}


以上是如何从两个迭代器创建范围的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>