hash_map::difference_type
[!NOTA]
Questo API è obsoleto.L'alternativa consiste unordered_map Class.
Un tipo interi con segno che può essere utilizzato per rappresentare il numero di elementi di un hash_map in un intervallo tra elementi indicato dagli iteratori.
typedef list<typename _Traits::value_type, typename _Traits::allocator_type>::difference_type difference_type;
Commento
difference_type è il tipo restituito quando viene sottratto o incrementando con gli iteratori del contenitore.difference_type in genere utilizzato per rappresentare il numero di elementi nell'intervallo [_First, _Last) tra il _First degli iteratori e _Last, include l'elemento fa riferimento da _First e l'intervallo degli elementi fino a, ma a esclusione di, l'elemento fa riferimento da _Last.
Si noti che anche se difference_type sia disponibile per tutti gli iteratori che soddisfano le esigenze di un iteratore di input, che include la classe di iteratori bidirezionali supportato dai contenitori reversibili come set, sottrazione fra gli iteratori solo supportato dagli iteratori di accesso casuale forniti da un contenitore casuale, come vettori.
In Visual C++ .NET 2003, i membri dei file di intestazione <hash_set> e <hash_map> non sono più nello spazio dei nomi di deviazione standard, ma sono stati spostati nello spazio dei nomi di stdext.Per ulteriori informazioni, vedere lo spazio dei nomi stdext.
Esempio
// hash_map_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <hash_map>
#include <algorithm>
int main( )
{
using namespace std;
using namespace stdext;
hash_map <int, int> hm1;
typedef pair <int, int> Int_Pair;
hm1.insert ( Int_Pair ( 2, 20 ) );
hm1.insert ( Int_Pair ( 1, 10 ) );
hm1.insert ( Int_Pair ( 3, 20 ) );
// The following won't insert, because map keys are unique
hm1.insert ( Int_Pair ( 2, 30 ) );
hash_map <int, int>::iterator hm1_Iter, hm1_bIter, hm1_eIter;
hm1_bIter = hm1.begin( );
hm1_eIter = hm1.end( );
// Count the number of elements in a hash_map
hash_map <int, int>::difference_type df_count = 0;
hm1_Iter = hm1.begin( );
while ( hm1_Iter != hm1_eIter)
{
df_count++;
hm1_Iter++;
}
cout << "The number of elements in the hash_map hm1 is: "
<< df_count << "." << endl;
cout << "The keys of the mapped elements are:";
for ( hm1_Iter= hm1.begin( ) ; hm1_Iter!= hm1.end( ) ;
hm1_Iter++)
cout << " " << hm1_Iter-> first;
cout << "." << endl;
cout << "The values of the mapped elements are:";
for ( hm1_Iter= hm1.begin( ) ; hm1_Iter!= hm1.end( ) ;
hm1_Iter++)
cout << " " << hm1_Iter-> second;
cout << "." << endl;
}
Requisiti
intestazione: <hash_map>
Stdext diSpazio dei nomi: