Функция
swap()
делает размен состояния между двумя контейнерами.
В этой строке у тебя сперва создается вектор из N элементов равных -1, а потом его состояние разменивается с состоянием
cache
. При размене не происходит дополнительных выделений памяти, состояния векторов в буквальном смысле меняются местами.
Далее исполнение выходит за область видимости временного контейнера, что приводит к его удалению. У нас на руках остается нужный нам
cache
с набором из
-1
.
Подозреваю, что это сброс кеша, перевод его состояния к изначальному виду.
Тут справка по
вектору.
Там описан весь интерфейс вектора.