Ответ 1
Например, 23.1/10:
Функцияno
swap()
делает недействительными любые ссылки, указатели или итераторы, ссылающиеся на элементы обменяемых контейнеров. [Примечание: Итераторend()
не ссылается ни на какой элемент, поэтому он может быть недействительным. -end note]
Я не знаю, можем ли мы быть уверены, что итератор, ссылающийся на элемент, последовательно использовался в стандарте для исключения конечных итераторов:/
Как сказано в комментарии, я предполагаю, что это должно позволить концевым итераторам указывать на значения часового в контейнере.
Например, типичная двухсвязная реализация List
заключается в создании структуры Node
и имеет значение Node
по значению внутри List
, чтобы действовать как конец node.