首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::prev

Defined in header <iterator>

?

?

template< class BidirIt > BidirIt prev( BidirIt it, typename std::iterator_traits<BidirIt>::difference_type n = 1 );

?

(since C++11) (until C++17)

template< class BidirIt > constexpr BidirIt prev( BidirIt it, typename std::iterator_traits<BidirIt>::difference_type n = 1 );

?

(since C++17)

返回n迭代器的TH前驱体it...

参数

it

-

an iterator

n

-

number of elements it should be descended

类型要求

-Bidirit必须符合双向迭代器的要求。

返回值

n迭代器的TH前驱体it...

可能的实施

模板<class BidirIt>Bidirit prev%28 Bidirit,type Name std::iterator[医]性状<BidirIt>*差异[医]类型n=1%29{std::前进%28 it,-n%29;返回它;}

*。

注记

虽然表达--c.end()通常情况下,无法保证这样做:c.end()是一个rvalue表达式,并且没有迭代器要求指定rvalue的递减可以保证工作。特别是,当迭代器被实现为指针时,--c.end()不编译,而std::prev(c.end())是的。

二次

代码语言:javascript
复制
#include <iostream>
#include <iterator>
#include <vector>
 
int main() 
{
    std::vector<int> v{ 3, 1, 4 };
 
    auto it = v.end();
 
    auto pv = std::prev(it, 2);
 
    std::cout << *pv << '\n';
}

二次

产出:

二次

代码语言:javascript
复制
1

二次

另见

next (C++11)

increment an iterator (function)

advance

advances an iterator by given distance (function)

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com