Namespaces
Variants
Views
Actions

std::prev

From cppreference.com
< cpp‎ | iterator
Revision as of 14:57, 2 November 2012 by P12bot (Talk | contribs)

Template:ddcl list begin <tr class="t-dsc-header">

<td>
Defined in header <iterator>
</td>

<td></td> <td></td> <tr class="t-dcl-sep"><td></td><td></td><td></td></tr>

<tr class="t-dcl ">

<td >
template< class BidirIt >

BidirIt prev( BidirIt it,

              typename std::iterator_traits<BidirIt>::difference_type n = 1 );
</td>

<td class="t-dcl-nopad"> </td> <td > (since C++11) </td> </tr> Template:ddcl list end

Return the nth predecessor of iterator it.

Contents

Parameters

it - an iterator
n - number of elements it should be descended
Type requirements
-
BidirIt must meet the requirements of BidirectionalIterator.

Return value

The nth predecessor of iterator it.

Possible implementation

template<class BidirIt>
BidirIt prev(BidirIt it, typename std::iterator_traits<BidirIt>::difference_type n = 1)
{
    std::advance(it, -n);
    return it;
}

Example

#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';
}

Output:

1

See also

Template:cpp/iterator/dcl list nextTemplate:cpp/iterator/dcl list advance