Добрый день.
Только начинаю работать с библиотекой opencv, в связи с чем возник вопрос:
Лучше объявлять указатели Mat или же сами объекты?т.е.:
Mat* a = new Mat();
или же
Mat a = Mat();
На первый взгляд, кажется что выделение памяти в куче разумней, так как объекты в целом немаленькие, в ходе работы мы можем увеличить размер матрицы и возникнет угроза переполнения стека.
С другой стороны, в тех примерах кода, что я видел, нигде не было использования оператора new, да и я нашел следующее утверждение:
При его использовании (класса Mat) вы освобождаете себя от забот по управлению памятью: выделению и освобождению. Класс реализует счетчик ссылок и память освобождается только тогда, когда она больше не нужна.
Те большие объемы данных, о которых Вы пишете, Mat и так выделяет в куче сам. И реализует логику по управлению этой памятью, включая копирование с подсчетом ссылок. Поэтому о переполнении стека беспокоиться ни к чему. Если вам не нужно именно динамическое создание - смело создавайте на стеке.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости