При условии Thing
правильно реализовано, поскольку его деструктор и другие функции-члены (особенно конструктор копирования, потому что он используется в vector
домашнем хозяйстве) правильно обрабатывают всю память для своих элементов данных, что это будет делать, создавая новый vector<Thing>
при каждом вызове функции.
Полученная локальная переменная things
корректно освобождается, включая уничтожение каждого члена Thing
, когда переменная выходит из области видимости (т. Е. При выходе из функции).
Невозможно бытьболее определенным, не видя весь код в методе и в Thing
, но это использование на первый взгляд правильно.