hash_set::difference_type
Примечание
Этот API устарел.Альтернативой является Класс unordered_set.
Тип знакового целого числа, который можно использовать для представления число элементов hash_set в диапазоне между элементами указал к итераторам.
typedef list<typename Traits::value_type, typename Traits::allocator_type>::difference_type difference_type;
Заметки
difference_type возвращаемый тип вычитая или увеличение через итераторы контейнера. difference_type обычно используется для представления число элементов в диапазоне [_First, _Last) между итераторами _First и _Last, содержит указанный элемент в _First и диапазон элементов до, но не включая элемент, указанный в _Last.
Обратите внимание, что difference_type доступно для всех итераторов, которые удовлетворяют требованиям итератора ввода, который содержит класс двунаправленных итераторов до реверзибельными контейнерами, такие как набор вычитания между итераторами поддерживается только произвольно-доступными итераторами доступными произвольно-доступным контейнером, например вектора или deque.
В Visual C++ .NET 2003 C, элементы файла заголовка <hash_map> и <hash_set> больше не в пространстве имен std, а перемещается в пространство имен stdext. Дополнительные сведения см. в разделе Пространство имен stdext.
Пример
// hash_set_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <hash_set>
#include <algorithm>
int main( )
{
using namespace std;
using namespace stdext;
hash_set <int> hs1;
hash_set <int>::iterator hs1_Iter, hs1_bIter, hs1_eIter;
hs1.insert( 20 );
hs1.insert( 10 );
hs1.insert( 20 ); // Won't insert as hash_set elements are unique
hs1_bIter = hs1.begin( );
hs1_eIter = hs1.end( );
hash_set <int>::difference_type df_typ5, df_typ10, df_typ20;
df_typ5 = count( hs1_bIter, hs1_eIter, 5 );
df_typ10 = count( hs1_bIter, hs1_eIter, 10 );
df_typ20 = count( hs1_bIter, hs1_eIter, 20 );
// The keys, and hence the elements, of a hash_set are unique,
// so there is at most one of a given value
cout << "The number '5' occurs " << df_typ5
<< " times in hash_set hs1.\n";
cout << "The number '10' occurs " << df_typ10
<< " times in hash_set hs1.\n";
cout << "The number '20' occurs " << df_typ20
<< " times in hash_set hs1.\n";
// Count the number of elements in a hash_set
hash_set <int>::difference_type df_count = 0;
hs1_Iter = hs1.begin( );
while ( hs1_Iter != hs1_eIter)
{
df_count++;
hs1_Iter++;
}
cout << "The number of elements in the hash_set hs1 is: "
<< df_count << "." << endl;
}
Требования
Заголовок:<hash_set>
Пространство имен: stdext