Condividi tramite


distance (STL Samples)

Viene illustrato come utilizzare distanza Funzione della libreria di modelli standard (STL) in Visual C++.

template<class Init, class Dist>
   Dist distance(
      InIt first,
      InIt last,
      Dist& n
   );

Note

[!NOTA]

La classe/nomi di parametro nel prototipo non corrisponde alla versione nel file di intestazione.alcuni sono stati modificati per migliorare la leggibilità.

Questa funzione restituisce la distanza tra due iteratori determinare quante volte il primo iteratore deve essere incrementato che sia stata uguale all'ultimo iteratore.

Esempio

// distance.cpp
// compile with: /EHsc

#pragma warning (disable:4786)
#include <iostream>
#include <vector>
#include <iterator>
#include <string>

using namespace std;

typedef vector<string > VTRLIST;

int main() {
    VTRLIST Vector;
    VTRLIST::iterator iVector;
    VTRLIST::difference_type dTheDiff;

    Vector.push_back("A1");
    Vector.push_back("B2");
    Vector.push_back("C3");
    Vector.push_back("D4");
    Vector.push_back("E5");
    Vector.push_back("F6");
    Vector.push_back("G7");

    // Print out the list
    iVector=Vector.begin();
    cout << "The list is: ";
    for (int i = 0; i < 7 ; i++, iVector++)
        cout << *iVector  << "  ";

    // Initialize the iterator the first element"
    iVector=Vector.begin();
    cout << "\n\nAdvance to the 3rd element." << endl;
    advance( iVector, 2);
    cout << "The element is " << *iVector << endl;
    dTheDiff = distance( Vector.begin(), iVector);
    cout << "The distance from the beginning is " << dTheDiff << endl;

    cout << "Calculate it in reverse order " << endl;
    dTheDiff = distance( iVector, Vector.begin());
    cout << "The distance is " << dTheDiff << endl;

    cout << "\nUse distance() to count from the 3rd element to the end."
         << endl;
    dTheDiff = distance( iVector, Vector.end());

    // Note that end() returns one past the end of the sequence
    cout << "The distance is " << dTheDiff << endl;

    cout <<"\nUse distance() to count the total length." << endl;
    dTheDiff = distance( Vector.begin(), Vector.end() );
    cout << "The total distance is " << dTheDiff << endl;
}

Output

The list is: A1  B2  C3  D4  E5  F6  G7  

Advance to the 3rd element.
The element is C3
The distance from the beginning is 2
Calculate it in reverse order 
The distance is -2

Use distance() to count from the 3rd element to the end.
The distance is 5

Use distance() to count the total length.
The total distance is 7

Requisiti

intestazione: <iteratore>

Vedere anche

Concetti

Esempi di una libreria di modelli standard