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

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

   
Отображения и мультиотображения поддерживают обычный набор операций для получения размера контейнера и сравнения элементов
(таблица 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::map<float,std::string> c1; // Критерий сортировки: std::less<> 
  std::map<float,std::string,std::greater<float> > c2;
  if (cl == c2) {   // ОШИБКА: разные типы
  .    .    .    .
  }

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

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



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

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