Namespaces
Variants

std::experimental::ranges:: prev

From cppreference.net
namespace {

constexpr /* 未指定 */ prev = /* 未指定 */ ;

}
(ranges TS)
(定制点对象)
调用签名
template < Iterator I >
constexpr I prev ( I i ) ;
(1)
template < Iterator I >
constexpr I prev ( I i, ranges :: difference_type_t < I > n ) ;
(2)
template < Iterator I >
constexpr I prev ( I i, ranges :: difference_type_t < I > n, I bound ) ;
(3)

将迭代器 i 递减 n 次,或直至达到 bound 边界(以先达到者为准),并返回递减后的迭代器。

1) 等价于 -- i ; return i ;
2) 等价于 ranges:: advance ( i, - n ) ; return i ;
3) 等价于 ranges:: advance ( i, - n, bound ) ; return i ;

目录

定制点对象

名称 ranges::prev 表示一个 定制点对象 ,它是一个 函数对象 ,具有 字面量 Semiregular 类类型(为说明方便,记作 PrevT )。所有 PrevT 的实例都是相等的。因此, ranges::prev 可以自由复制,其副本可以互换使用。

给定一组类型 Args... ,若 std:: declval < Args > ( ) ... 满足上述对 ranges::prev 参数的要求,则 PrevT 将满足 ranges :: Invocable < const PrevT, Args... > 。否则, PrevT 的函数调用运算符均不参与重载决议。

在每个定义了 ranges::prev 的翻译单元中,它都指向同一个定制点对象实例。(这意味着它可以自由用于内联函数和函数模板等场景,而不会违反 单一定义规则 。)

返回值

递减后的迭代器。

示例

参见

(C++11)
递减迭代器
(函数模板)
按给定距离推进迭代器
(函数模板)
递增迭代器
(函数模板)
返回迭代器与哨位之间的距离,或范围起始与末尾之间的距离
(函数模板)