Операции над множествами и мультимножествами. Немодифицирующие операции

   
На этом шаге мы рассмотрим немодифицирующие операции.

   
Множества и мультимножества поддерживают обычный набор операций для получения размера контейнера и сравнения элементов
(таблица 1).

Таблица 1. Немодифицирующие операции над множествами и мультимножествами

ОперацияОписание
c.size()Возвращает фактическое количество элементов
c.empty()Проверяет, пуст ли контейнер (эквивалент size()==0, но иногда выполняется быстрее)
c.max_size()Возвращает максимально возможное количество элементов
c1 == с2Проверяет равенство c1 и с2
c1 != с2Проверяет неравенство c1 и с2 (эквивалент !(c1==c2))
c1 < с2Проверяет, что c1 меньше с2
c1 > с2Проверяет, что c1 больше с2 (эквивалент c2<с1)
с1<= с2Проверяет, что с1 не больше с2 (эквивалент !(c2<с1))
с1 >= с2Проверяет, что c1 не меньше с2 (эквивалент !(c1<с2))

   
Операции сравнения определены только для однотипных контейнеров. Это означает совпадение как типов элементов, так и критерия
сортировки; в противном случае происходит ошибка компиляции. Пример:

  std::set<float> c1; // Критерий сортировки: std::less<> 
  std::set<float,std::greater<float> > c2;
  if (cl == c2) {   // ОШИБКА: разные типы
  .    .    .    .
  }

   
Отношение "меньше/больше" между контейнерами проверяется по лексикографическому критерию. Для сравнения контейнеров
разных типов (с разными критериями сортировки) необходимо использовать определенные алгоритмы, которые будут рассмотрены позднее.

   
На следующем шаге мы рассмотрим специальные операции поиска.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий