首页 > 解决方案 > `closed_iota` 和 `iota` 之间的区别?

问题描述

range-v3 库中的closed_iota和有什么区别?iota

标签: c++range-v3

解决方案


第二个遵循标准 C++ 表示范围的方式 - 默认为右侧开放范围。第一个是包容性的。

iota接受两个参数:startend. 它产生从startend 包括的元素end

closed_iota接受两个参数:startend. 它产生从startend 包含 end价值的元素。

示例:iota(1, 5)表示由 组成的范围{1, 2, 3, 4},并且closed_iota(1, 5)表示由 组成的范围{1, 2, 3, 4, 5}

您需要它们两个,因为默认情况下,我们希望事物是右侧排他的,但有时您需要整个值范围。在这种情况下,您需要closed_iota.

但是,存在不一致之处 - 查看std::uniform_xxx_distributions。


推荐阅读