c++ - 如何从开始和结束迭代器创建范围?

标签 c++ range-v3

我有一个对象,它具有获取开始和结束迭代器的功能:

const_iterator err_begin() const
const_iterator err_end() const 

因为它们没有被命名为 beginend,所以我无法将我的对象直接传递给 range-v3 中的函数。

是否有一个简单的包装器可以让这个对象与 range-v3 库一起使用?

例如:

auto hasErrors = !empty(something(x.err_begin(), x.err_end())); 

最佳答案

听起来您正在寻找 iterator_range :

auto hasErrors = !empty(ranges::make_iterator_range(x.err_begin(), x.err_end()));

关于c++ - 如何从开始和结束迭代器创建范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41268186/

相关文章:

c++ - 使用 TR1/dev/random 在 C++ 中生成随机数(弹性到 <1 秒运行)

c++ - 基于元素间差异的生成器take_while

c++ - 使用 range-v3 进行转换

c++ - 在 getter 中对嵌套 getter 结果进行扁平化的最佳方法

c++ - 将 n 个 vector 组合成一个 n 元组 vector

c++ - 理解 C++11 中的 `memory_order_acquire` 和 `memory_order_release`

c++ - "auto"变量在其自己的初始化程序中用于 lambda

c++ - 如何在 macOS Catalina 上解决此错误?

c++ - 可变大小和类型队列的类结构

c++ - ranges-v3 中的洗牌 Action