Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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.

// 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.

Encabezado: <iterator>

Espacio de nombres: std

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft