hash_multiset::difference_type
[!メモ]
この API は、互換性のために残されています。代わりに unordered_multiset クラスです。
同じhash_multiset内の要素を指定する2反復子の差を提供する符号付き整数の型。
typedef list<typename _Traits::value_type, typename _Traits::allocator_type>::difference_type difference_type;
解説
difference_type はコンテナーの反復子で減算、乗算して返される型です。difference_type は、通常、反復子範囲[ _First 間の_First、_Last内の要素数を表すために使用され、_Lastは、_First で、要素のスコープは、で指定された点まで、要素 _Lastが指す要素が含まれます。
difference_type が適合するすべての反復子で使用できるがの要件は、などの元のコンテナーに含める入力反復子、双方向の反復子クラスもことに注意してください。反復子の間の減算では、ベクターまたはdequeなどのランダム アクセス コンテナーによって提供されるランダム アクセス反復子でのみサポートされます。
Visual C++ .NET 2003では、<hash_map> と <hash_set> ヘッダー ファイルのメンバーはstdの名前空間に存在しなくなりましたが、ではなくstdextの名前空間に型。詳細については、「The stdext Namespace」を参照してください。
使用例
// hash_multiset_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <hash_set>
#include <algorithm>
int main( )
{
using namespace std;
using namespace stdext;
hash_multiset <int> hms1;
hash_multiset <int>::iterator hms1_Iter, hms1_bIter, hms1_eIter;
hms1.insert( 20 );
hms1.insert( 10 );
// hash_multiset elements need not be unique
hms1.insert( 20 );
hms1_bIter = hms1.begin( );
hms1_eIter = hms1.end( );
hash_multiset <int>::difference_type df_typ5, df_typ10,
df_typ20;
df_typ5 = count( hms1_bIter, hms1_eIter, 5 );
df_typ10 = count( hms1_bIter, hms1_eIter, 10 );
df_typ20 = count( hms1_bIter, hms1_eIter, 20 );
// The keys & hence the elements of a hash_multiset
// need not be unique and may occur multiple times
cout << "The number '5' occurs " << df_typ5
<< " times in hash_multiset hms1.\n";
cout << "The number '10' occurs " << df_typ10
<< " times in hash_multiset hms1.\n";
cout << "The number '20' occurs " << df_typ20
<< " times in hash_multiset hms1.\n";
// Count the number of elements in a hash_multiset
hash_multiset <int>::difference_type df_count = 0;
hms1_Iter = hms1.begin( );
while ( hms1_Iter != hms1_eIter)
{
df_count++;
hms1_Iter++;
}
cout << "The number of elements in the hash_multiset hms1 is "
<< df_count << "." << endl;
}
必要条件
ヘッダー: <hash_set>
名前空間: のstdext