hash_set::difference_type
Notes
Cette API est obsolète.L'alternative est unordered_set, classe.
Un type d'entier signé qui peut être utilisé pour représenter le nombre d'éléments d'un hash_set dans une plage définit entre deux éléments pointés par des itérateurs.
typedef list<typename Traits::value_type, typename Traits::allocator_type>::difference_type difference_type;
Notes
difference_type est le type retourné lorsque l'on incrémente ou décrémente au sein des itérateurs du conteneur. difference_type est généralement utilisé pour représenter le nombre d'éléments dans la plage [_First, _Last) entre les itérateurs _First et _Last, incluant l'élément vers lequel pointe _First et la plage d'éléments jusqu'à _Last non inclus.
Notez que même si difference_type est disponible pour tous les itérateurs qui répondent aux exigences d'un itérateur d'entrée, qui inclut la classe des itérateurs bidirectionnels prise en charge par les conteneurs réversibles tels que les ensembles, la soustraction entre les itérateurs n'est prise en charge que par les itérateurs à accès aléatoire fournis par un conteneur à accès aléatoire, tel que le vecteur ou une file inversée.
Dans Visual C++ .NET 2003, les membres des fichiers d'en-tête <hash_map> et de <hash_set> ne sont plus dans l'espace de noms standard, mais ont été plutôt déplacés dans l'espace de noms de stdext. Pour plus d'informations, consultez The stdext Namespace.
Exemple
// 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;
}
Configuration requise
Header: <hash_set>
Espace de noms : stdext