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