是一个容器肯定是概念上的范围
Is a container sure to be a range conceptually?
来自ranges-v3的文档:
view::all
返回包含源中所有元素的范围。 对于将容器转换为范围很有用。
让我困惑的是:
- 在哪种情况下使用
view::all
? - 是标准容器(
std::vector
,std::list
等(不是概念上的范围?
例如:
auto coll = std::vector{ 1, 2, 2, 3 };
view::all(coll) | view::unique; // version 1
coll | view::unique; // version 2
version 1
和version 2
?
egad,由于range-v3切换术语,文档的一部分尚未进行更新。是的,一个容器是一个范围(它具有返回迭代器/前哨对的begin()
和end()
(。它不是视图(具有O(1(副本/移动的范围(。因此,view::all
的文档应阅读:
view::all
返回一个包含源中所有元素的视图。对于将容器转换为视图很有用。
要回答您的第二个问题,没有代码中版本1和版本2之间没有区别。
相关文章:
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 在函数范围内在堆栈上分配的数组在离开函数时是否总是被释放?
- 在 c++ 中确定堆栈上的变量范围
- 如果变量数据包含大于 vector 所有元素的整数,则仅在视觉工作室上接收"矢量下标超出范围"?
- 关于在向量向量上使用基于范围的 for 循环
- 为什么基于范围类型的大括号上循环init列表是非法的c++
- C++范围 - v3 概念::valid_expr 检查,带有尾随", 42"
- 如何修复错误:"vreinterpretq_u32_f64"未在此范围内声明 - 在Android上使用Eigen构建
- 迭代器的范围 TS 和 C++20 概念是否需要能够使用"运算符>"?
- 指针上的 For 循环:它会移动整个地址范围吗?
- 如何在枚举上设置范围?
- 满足标准::范围::范围概念
- 如何将不在 QT 全局范围内的函数附加到 Qwidget 上
- 如何在 Linux 上强制执行矢量下标超出范围的调试断言
- 是一个容器肯定是概念上的范围
- 将成员函数标记为 const 时,如果它在概念上不是
- C 传递序列上范围为变异功能模板
- 概念上的混乱
- 复制列表初始化是否在概念上调用复制 ctor
- 是否有任何技术/概念上的原因boost::circular_buffer不支持移动赛门铁克?