是一个容器肯定是概念上的范围

Is a container sure to be a range conceptually?

本文关键字:概念上 范围 一个      更新时间:2023-10-16

来自ranges-v3的文档:

view::all

返回包含源中所有元素的范围。 对于将容器转换为范围很有用。

让我困惑的是:

  1. 在哪种情况下使用view::all
  2. 是标准容器(std::vectorstd::list等(不是概念上的范围?

例如:

auto coll = std::vector{ 1, 2, 2, 3 };  
view::all(coll) | view::unique; // version 1
coll | view::unique; // version 2

version 1version 2

之间是否有区别

egad,由于range-v3切换术语,文档的一部分尚未进行更新。是的,一个容器是一个范围(它具有返回迭代器/前哨对的begin()end()(。它不是视图(具有O(1(副本/移动的范围(。因此,view::all的文档应阅读:

view::all

返回一个包含源中所有元素的视图。对于将容器转换为视图很有用。

要回答您的第二个问题,没有代码中版本1和版本2之间没有区别。