Шаг 128.
Библиотека STL.
Контейнеры STL. Присваивание и функция swap

    На этом шаге мы рассмотрим особенности выполнения операции присваивания.

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

    Если контейнеры относятся к одному типу, а источник в дальнейшем не требуется, существует простой способ оптимизации: воспользуйтесь функцией swap(). Функция swap() работает гораздо эффективнее, потому что использует только внутренние данные контейнеров. Более того, она переставляет только внутренние указатели со ссылками на данные (элементы, распределитель памяти и критерий сортировки, если он есть). Следовательно, функция swap() при присваивании заведомо выполняется с постоянной, а не с линейной сложностью.

    Со следующего шага мы начнем знакомиться более подробно с векторами.




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