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

distance

 

Determina el número de incrementos entre las posiciones direccionadas por dos iteradores.


   template<class InputIterator>
typename iterator_traits<InputIterator>::difference_type
   distance(
      InputIterator _First, 
      InputIterator _Last
   );

_First

El primer iterador cuya distancia de segunda debe determinar.

_Last

El segundo iterador cuya distancia de primera debe determinar.

El número de veces que _First se debe aumentar hasta que tenga igual _Last.

La función de distancia tiene complejidad constante cuando InputIterator cumple los requisitos para un iterador de acceso aleatorio; si no, tiene complejidad lineal y lo que es potencialmente cara.

Ejemplo

// iterator_distance.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

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

   list<int> L;
   for ( i = -1 ; i < 9 ; ++i ) 
   {
      L.push_back ( 2 * i );
   }
   list <int>::iterator L_Iter, LPOS = L.begin ( );

   cout << "The list L is: ( ";
   for ( L_Iter = L.begin( ) ; L_Iter != L.end( ); L_Iter++ )
      cout << *L_Iter << " ";
   cout << ")." << endl;

   cout << "The iterator LPOS initially points to the first element: "
        << *LPOS << "." << endl;

   advance ( LPOS , 7 );
   cout << "LPOS is advanced 7 steps forward to point "
        << " to the eighth element: "
        << *LPOS << "." << endl;

   list<int>::difference_type Ldiff ;
   Ldiff = distance ( L.begin ( ) , LPOS );
   cout << "The distance from L.begin( ) to LPOS is: "
        << Ldiff << "." << endl;
}
          L de la lista es: (-2 0 2 4 6 8 10 12 14 16).
Los puntos de iterador LPOS inicialmente al primer elemento: -2.
LPOS se avanza 7 pasos en el punto al octavo elemento: 12.
La distancia de L.begin () a LPOS es: 7.

Requisitos

Encabezado: <iterator>

Espacio de nombres: std

Mostrar: