Контейнеры STL. Присваивание и функция swap

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

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

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

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



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

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