Думайте о list
и lists
как о ссылках на объекты, а не на сами объекты, при разработке управления памятью.
Перед вызовом метода у вас есть invertedIndex
, помечающий некоторый объект. Поскольку на него ссылаются из класса (который остается в памяти), этот объект недоступен для сборки мусора.
Внутри метода вы создаете вектор и используете lists
для ссылки на него. Вы также называете часть объекта в invertedIndex с помощью list
.
После вызова метода два имени выходят из области видимости. Созданный вектор не имеет другой ссылки, поэтому он доступен для сборки мусора. Однако объект, на который ссылается list
, по-прежнему косвенно ссылается на invertedIndex
, поэтому он не доступен для сборки мусора.
Надеюсь, это поможет.