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

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

  контейнер& контейнер::operator= (const контейнер& с)
Присваивает контейнеру все элементы с; иначе говоря, все существующие элементы замещаются копиями элементов с. Оператор вызывает оператор присваивания для перезаписываемых элементов, копирующий конструктор для присоединяемых элементов или деструктор типа элемента для удаляемых элементов. Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

  void контейнер::assign (size_type num, const T& value)
Присваивает контейнеру num экземпляров value; иначе говоря, все существующие элементы замещаются num копиями value. Т - тип элементов контейнера. Поддерживается векторами, деками, списками, строками.

  void контейнер::assign (InputIterator beg, InputIterator end)
Присваивает контейнеру содержимое интервала [beg,end); иначе говоря, все существующие элементы замещаются копиями элементов [beg,end). Функция оформлена в виде шаблонной функции класса. Это означает, что элементы исходного интервала могут относиться к произвольному типу, который может быть преобразован к типу элементов контейнера. Поддерживается векторами, деками, списками, строками.

  void контейнер::swap (контейнер& с)
Меняет местами содержимое контейнера с содержимым контейнера с. В обоих контейнерах меняются как элементы, так и критерии сортировки. Функция выполняется с постоянной сложностью. Всегда используйте ее вместо присваивания, если присвоенный объект вам больше не нужен. Для ассоциативных контейнеров функция генерирует исключения только в том случае, если эти исключения происходят при копировании или присваивании критерия сравнения. Для остальных контейнеров функция не генерирует исключения. Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

  void swap (контейнер& c1, контейнер& c2)
Эквивалент следующего вызова (смотри предыдущее описание):
  c1.swap(c2)
Для ассоциативных контейнеров функция генерирует исключения только в том случае, если эти исключения происходят при копировании или присваивании критерия сравнения. Для остальных контейнеров функция не генерирует исключений. Поддерживается векторами, деками, списками, множествами, мультимножествами, отображениями, мультиотображениями, строками.

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




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