Много раз нам нужны объекты некоторых классов должны быть инициализированы в циклах, которые будут работать на:улучшения производительности с помощью локальных объектов
Пусть у меня есть класс/структура:
class employee
{
//member variables
//member methods - getter/setters,etc
}
Теперь предположит, что я хочу работать с каждым сотрудником в массиве.
Подход 1:
for (loop on array of 10 employees)
{
employee emp(loop element); //using constructor of employee for initialization
//operate on the current loop element using emp
}
Таким образом, согласно моему пониманию, 10 объектов EMP будет получить созданы до finishes.Now петли, так как это не включает в себя динамическое распределение памяти, как только управление выходит из цикла , будут удалены все 10 объектов (& память, занятая 10, будет освобождена), или только последний объект будет удален (& память, занятая 9 объектами, не будет освобождена).
подход 2:
for (loop on array of 10 employees)
{
employee *emp=new employee(loop element); //using constructor of employee for initialization
//operate on the current loop element using emp
delete emp;
emp = nullptr;
}
Здесь находится под контролем программиста, поэтому мы можем освободить память, сами в каждой итерации цикла. Хотя это также вызовет частые выделения & освобождение памяти кучи & может привести к некоторому ухудшению ситуации, если цикл предназначен для огромного числа сотрудников.
Пожалуйста, помогите мне с запросом, упомянутым в подходе 1 &, пожалуйста, укажите, какой из приведенных выше подходов хорош. И если есть какой-либо подход к тому же?