std::prev
性病:PRV
Defined in header | | |
---|---|---|
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())
是的。
例
二次
#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';
}
二次
产出:
二次
1
二次
另见
next (C++11) | increment an iterator (function) |
---|---|
advance | advances an iterator by given distance (function) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。