Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

operator- (<iterator>)

 

Resta un iterador de otro y devuelve la diferencia.

template<class RandomIterator1, class RandomIterator2>
    Tdiff operator-(
        const move_iterator<RandomIterator1>& _Left,
        const move_iterator<RandomIterator2>& _Right
    );
template<class RandomIterator1, class RandomIterator2>
    Tdiff operator-(
        const reverse_iterator<RandomIterator1>& _Left,
        const reverse_iterator<RandomIterator2>& _Right
);

_Left

Un iterador.

_Right

Un iterador.

La diferencia entre dos iteradores.

El primer operador de la plantilla devuelve _Left.base() - _Right.base().

El segundo operador de la plantilla devuelve _Right.current - _Left.current.

Tdiff está determinado por el tipo de la expresión devuelta.  De lo contrario, es RandomIterator1::difference_type.  

Ejemplo

// iterator_op_sub.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   vector<int> vec;
   for (i = 0 ; i < 6 ; ++i )  
   {
      vec.push_back ( 2 * i );
   }

   vector <int>::iterator vIter;

   cout << "The initial vector vec is: ( ";
   for ( vIter = vec.begin( ) ; vIter != vec.end( ); vIter++)
      cout << *vIter << " ";
   cout << ")." << endl;

   vector <int>::reverse_iterator rVPOS1 = vec.rbegin ( ), 
          rVPOS2 = vec.rbegin ( );

   cout << "The iterators rVPOS1 & rVPOS2 initially point to "
        << "the first element\n in the reversed sequence: "
        << *rVPOS1 << "." << endl;

   for (i = 1; i < 5; ++i)  
   {
      rVPOS2++;
   }
   cout << "The iterator rVPOS2 now points to the fifth "
        << "element\n in the reversed sequence: "
        << *rVPOS2 << "." << endl;

   vector<int>::difference_type diff = rVPOS2 - rVPOS1;
   cout << "The difference: rVPOS2 - rVPOS1= "
        << diff << "." << endl;
}
          El vec inicial vectoriales es: (0 2 4 6 8 10).
Los iteradores rVPOS1 & rVPOS2 señalan inicialmente al primer elemento
 en la secuencia invertida: 10.
Los puntos de iterador rVPOS2 ahora el quinto elemento
 en la secuencia invertida: 2.
La diferencia: rVPOS2 - rVPOS1= 4.

Requisitos

Encabezado: <iterator>

Espacio de nombres: std

Mostrar: