Шаг 160.
Библиотека STL. Контейнеры STL. Операции над множествами и мультимножествами. Немодифицирующие операции

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

    Множества и мультимножества поддерживают обычный набор операций для получения размера контейнера и сравнения элементов (таблица 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) {   // ОШИБКА: разные типы
  .    .    .    .
  }

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

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




Предыдущий шаг Содержание Следующий шаг