Поделиться через


set::difference_type

Тип знакового целого числа, который может использоваться для представления количество элементов набора в диапазоне между элементами указал к итераторам.

typedef typename allocator_type::difference_type difference_type;

Заметки

Возвращаемый тип difference_type или посредством вычитания инкрементирующ через итераторы контейнера.difference_type, как правило, используется для представления число элементов в диапазоне [_First, _Last) между итераторами _First и _Last, включающий в себя элемент, на _First и диапазон элементов до, но не включая элемент, на _Last.

Обратите внимание, что хотя difference_type доступно для всех итераторов, удовлетворяющего требованиям итератора ввода, который содержит класс двухнаправленных итераторов, поддерживаемые реверзибельными контейнерами как набор, вычитания между итераторами поддерживается только произвольно-доступными итераторами указанными контейнером произвольно-доступным как вектор.

Пример

// set_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <set>
#include <algorithm>

int main( )
{
   using namespace std;

   set <int> s1;
   set <int>::iterator s1_Iter, s1_bIter, s1_eIter;

   s1.insert( 20 );
   s1.insert( 10 );
   s1.insert( 20 );   // won't insert as set elements are unique

   s1_bIter = s1.begin( );
   s1_eIter = s1.end( );

   set <int>::difference_type   df_typ5, df_typ10, df_typ20;

   df_typ5 = count( s1_bIter, s1_eIter, 5 );
   df_typ10 = count( s1_bIter, s1_eIter, 10 );
   df_typ20 = count( s1_bIter, s1_eIter, 20 );

   // the keys, and hence the elements of a set are unique,
   // so there is at most one of a given value
   cout << "The number '5' occurs " << df_typ5
        << " times in set s1.\n";
   cout << "The number '10' occurs " << df_typ10
        << " times in set s1.\n";
   cout << "The number '20' occurs " << df_typ20
        << " times in set s1.\n";

   // count the number of elements in a set
   set <int>::difference_type  df_count = 0;
   s1_Iter = s1.begin( );
   while ( s1_Iter != s1_eIter)   
   {
      df_count++;
      s1_Iter++;
   }

   cout << "The number of elements in the set s1 is: " 
        << df_count << "." << endl;
}
  
  
  
  

Требования

заголовок: <set>

std пространство имен:

См. также

Ссылки

set Class

Стандартная библиотека шаблонов