swap
следует использовать вместоiter_swap
, который был включен в стандарт С++ для обратной совместимости.
Большинство алгоритмов STL работают на диапазонах итераторов. Поэтому имеет смысл используйте
iter_swap
при замене элементов в этих диапазонах, поскольку это цель - замена элементов, на которые указывают два итератора. Эта позволяет оптимизировать для node основанных последовательностей, таких какstd::list
, посредством чего узлы просто перемотаны, а не фактически заменяемые данные.
Итак, какой из них правильный? Должен ли я использовать iter_swap
, или я должен использовать swap
? (Является iter_swap
только для обратной совместимости?) Почему?