В стандартной библиотеке C ++ нет "ArrayList". Я предполагаю, что вы используете std::vector
, std::vector<someType>
, если быть точным.
Контейнеры STL хранят объекты по значению . Первая строка в этом теле цикла вызывает someType
конструктор копирования , поэтому вы получите копию объекта. Эта копия автоматически выделяется , т.е. она находится в стеке. Вы обновляете копию, а затем она выходит из области видимости и уничтожается в конце итерации. Исходный объект, содержащийся в векторе, не изменяется.
Edit:
И, конечно, я забыл сделать последнее замечание - используйте ссылку (см. Ответ Джеймса, который вы, вероятно, должны принять).