distance (STL Samples)
Демонстрируется использование диапазон Стандартная функция библиотеки стандартных шаблонов (STL) в Visual C++.
template<class Init, class Dist>
Dist distance(
InIt first,
InIt last,
Dist& n
);
Заметки
Примечание |
---|
Имена класса и параметра в прототипе не соответствует версии в файле заголовка.Некоторые были изменены для улучшения удобочитаемости. |
Эта функция возвращает расстояние между 2 итераторов, указав первому итератору сколько раз необходимо быть инкрементированным до тех пор, пока он не будет равен последнему итератор.
Пример
// 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
Требования
заголовок:<итератор>