multiset::difference_type
Um tipo de dados inteiro assinado que pode ser usado para representar o número de elementos de um multiset em um intervalo entre os elementos apontado pelos iteradores.
typedef typename allocator_type::difference_type difference_type;
Comentários
difference_type é o tipo retornado para o subtrair ou para incrementar com os iteradores do contêiner. difference_type normalmente é usado para representar o número de elementos no intervalo [_First, _Last) entre os iteradores _First e _Last, inclui o elemento apontado por _First e o intervalo dos elementos até, mas não incluindo, o elemento apontado por _Last.
Observe que embora difference_type está disponível para todos os iteradores que atendem aos requisitos de um iterador de entrada, que inclua a classe de iteradores bidirecionais suporte por contêineres reversíveis como o conjunto, subtração entre iteradores é suportado somente pelos iteradores de acesso aleatório fornecidos por um contêiner de acesso aleatório como o vetor.
Exemplo
// multiset_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <set>
#include <algorithm>
int main( )
{
using namespace std;
multiset <int> ms1;
multiset <int>::iterator ms1_Iter, ms1_bIter, ms1_eIter;
ms1.insert( 20 );
ms1.insert( 10 );
ms1.insert( 20 );
ms1_bIter = ms1.begin( );
ms1_eIter = ms1.end( );
multiset <int>::difference_type df_typ5, df_typ10, df_typ20;
df_typ5 = count( ms1_bIter, ms1_eIter, 5 );
df_typ10 = count( ms1_bIter, ms1_eIter, 10 );
df_typ20 = count( ms1_bIter, ms1_eIter, 20 );
// The keys, and hence the elements, of a multiset are not unique
cout << "The number '5' occurs " << df_typ5
<< " times in multiset ms1.\n";
cout << "The number '10' occurs " << df_typ10
<< " times in multiset ms1.\n";
cout << "The number '20' occurs " << df_typ20
<< " times in multiset ms1.\n";
// Count the number of elements in a multiset
multiset <int>::difference_type df_count = 0;
ms1_Iter = ms1.begin( );
while ( ms1_Iter != ms1_eIter)
{
df_count++;
ms1_Iter++;
}
cout << "The number of elements in the multiset ms1 is: "
<< df_count << "." << endl;
}
Requisitos
defineCabeçalho: <>
Namespace: std