Ответы пользователя по тегу C++
  • FFmpeg. Как программно записать поток в реальном режиме?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку номер кадра для real-time не имеет смысла то надо поискать такую нумерация которая этот смысл принесет.

    Пиши текущий timestamp в качестве имени.
    Ответ написан
  • Как сделать реакцию на вызов метода у объекта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эта тема не про иерархию и ООП.

    А про алгоритмы и структуры данных. На их языке вопрос должен звучать так.

    - Дано дерево объектов {Car}/{Box}/{Bomb}
    - И при возникновении события в листовом уровне дерева - должна удаляться вся цепочка Parents вплоть до уровня Car.
    Ответ написан
    Комментировать
  • Как передать два параметра в тред?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку С++ - это объектный язык то обсуждение того как что-то передать надо вести в терминах объектов.
    Этож не ассеблер. Смотрите на шапку функции по созданию треда.
    HANDLE CreateThread(
      LPSECURITY_ATTRIBUTES   lpThreadAttributes,
      SIZE_T                  dwStackSize,
      LPTHREAD_START_ROUTINE  lpStartAddress,
      __drv_aliasesMem LPVOID lpParameter,
      DWORD                   dwCreationFlags,
      LPDWORD                 lpThreadId
    );


    В ней lpParameter должен быть указателем на структуру из вашего массива и длины. Или просто вектор целых чисел в терминологии STD (std::vector)
    Ответ написан
    Комментировать
  • Как на OpenCl работать с изображением?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Данный пример с чтением png - неудачный.
    Дело в том что декодирование png не параллелится. Оно будет выполнено на 1 ядре процессора. И это займет 80% времени. Я так думаю. А уже декорированную матрицу RGB - да можно процессить на Opencl разбивая картинку на строки или на фреймы. Но преимущества opencl будут потеряны. Ведь мы уже львиную часть времени простояли ожидая декодирования.
    Ответ написан
    Комментировать
  • Доступ к приватным полям через арифметику указателей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Формально, с точки зрения ООП так делать нельзя. Я не знаю продуктовых задач где такой злостный хак имел бы место.

    А преподавателю который это придумал - надо оторвать яйца.
    Ответ написан
    6 комментариев
  • Как написать видео редактор?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Автор ты взялся за самое безнадежное и неблагодарное дело. Во первых - поддержка видео-форматов или видео-кодеков. С нуля с этим ты просидишь до седой бороды. Никому не нужна будет разработка через 70 лет.

    Посмотри исходники из опенсорцных
    - VirtualDub (там оконное приложение и фильтры)
    - ffmpeg кодекеи
    - VLC (плеер и кодеки)

    По поводу математики и моделей. Видеоредактор должен уметь склеивать видосы разных разрешений и разных fps. Тебе нужна единая внутреняя модель представления видео и звука во времени. И ты должен написать API для работы с этим всем.

    Не спеши кодить. Просто нарисуй на бумажке диаграмму или модель компонент твоего приложения. Я думаю что уже на этом этапе ты должен сильно охладать к разработке или думать как нанять бригаду кодеров и платить им всем сразу и долго.
    Ответ написан
    2 комментария
  • Как найти в строке 16-ричные числа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут могут быть подводные камни.

    В произвольном английском тексте есть одельные независимые слова которые покрывают
    диапазон 0x0..0xF и будут ложные срабатывания на артиклях: "a" и вообще коротких
    словах таких как "cafe" которые технически воспринимаются как хекс-число.

    Поищите все слова что покрывают abcdef.
    Ответ написан
  • Как совместить python и С++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы делал наоборот. Высокоуровневые вещи. Формочки. Мышко-клики. Действия пользователя я-бы делал на Питоне. А тайм-критичные вещи (работа с файлами и сетью и бизнес-логикой) - на С++.

    Тот факт что у С++ есть Qt с формочками ни о чем не говорит. Это - как редкое исключение из правил. Всё равно что на примере падения метеорита доказать что в небе есть железо и надо срочно добывать его в космосе.
    Ответ написан
    Комментировать
  • Как найти часто встречающиеся тексте последовательности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    120 гигабайт - это размер еще не Биг-дата но уже близкий к выходу за рамки оперативной памяти. Если исходный материал побит на файлы (небольшого размера) то я-бы предложил решать эту задачу через map-reduce.

    Если удасться это сделать то реализация написанная на Python может работать быстрее во много раз за счет параллелизма. Я не говорю что на С++ не надо делать. Я просто акцентирую внимание что задача имеет специфику распаралелливания. Грубо говоря задача тяготеет к big-data и шаблонам паралельного процессинга для которых язык не особо важен а важна имеено эта опция.

    По алгоритму. Ну я +1 к Антону.
    Ответ написан
    Комментировать
  • C++ или Java, что выбрать первым?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    C++ остается сильным направлением только в геймдеве. Во всем остальном он уже не рулит. Изучай Java если хочешь бабло зарабатывать. С++ выучишь потом для души.
    Ответ написан
    8 комментариев
  • Как узнать, по какому адресу загружена библиотека и какой её размер в байтах, что бы можно было сделать memmove?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько мыслей.
    - Задача противоречит базовым принципам защиты информации в много-процессной ОС. Если ее рассматривать с разных углов то можно видеть и анти-вирусную угрозу и просто краш системы если она будет работать от супер-пользователя. Эти пункты надо проговорить.
    - Реализация будет сильно зависеть не от С++ а от ОС (Windows/Linux)
    - Очень полезно понять мотивы зачем этого хочет автор. Тогда и можно придумать эффективное решение. Тоесть не просто сделать memmove, сделать ДЛЯ КАКИХ_ТО целей.
    Ответ написан
    Комментировать
  • Поможет ли вынос работы с крэшащейся библиотекой в отдельный поток от крэша всего приложения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тема выходит за границы чистого С++. Автор расскажи что у тебя Windows или Linux.
    Ответ написан
    Комментировать
  • Не актуально не актуально?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Делаешь с рекурсией. Но дополнительно задаешь параметр level. При входе в рекурсию увеличиваешь его на +1.
    И если больше 1 то не погружаешся дальше.
    Ответ написан
    1 комментарий
  • Как в RC6 вводятся текст и ключ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Схема при которой пользователь вводит НЕЧТО с клавиатуры и это нечто расматривается как ключ шифрования - очень слабая схема и не выдерживает атак. Пользоватль ленив и глуп. И всегда будет стараться вводить пароли и ключи по 1-2 символа. С этим ничего не поделать. Поэтому если автор заинтересован чтобы поле ключей было более сложным - надо использовать во первых SALT в совокупности с паролем. И использовать функцию хеширования наподобие SHA1 чтобы получить более-менее сложый ключ. В некоторых случаях (сеансовые ключи) можно получить энтропию из внешнего мира (часы в микросекундах и текущее положение мышки на экрасне).

    Тоесть само наличие в схеме алгоритма RC5 еще не гарантирует что у тебя система надежна. Нужно чтобы ее использование было чистым и лишенным человеческого фактора.
    Ответ написан
  • Почему шарик застревает в стене?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно корркетировать не только вектор скорости но и координату. Это спасёт шарик от сингулярностей.

    if(x + 64 > 320.0) {
      dx = -dx;
      x = 320.0;
    } else if (x < 0.0) {
      dx = -dx;
      x = 0.0;
    }
    
    if (y ... e.t.c.
    Ответ написан
    Комментировать
  • Алгоритм поворота динамического массива без доп памяти?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно эту прямоугольную "колбасу" вообще не поворачивать. А хранить вектор повернутости. И перегрузить оператор индекса чтобы доступ вел себя по правилам аффинных преобразований.
    Ответ написан
    Комментировать
  • Как сделать дизайн (GUI) на C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос звучит неправильно. Сам по себе С++ не имеет никаких встроенных в себя технологий для отрисовки графики. Это уже - задача библиотек которые будут зависеть от ОС или оконного менеджера.

    И здесь Qt, Gnome, KDE, WTL просто производные от ОС.
    Ответ написан
    Комментировать
  • Как передавать много сообщений через Socket?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Автор пытается построить свой прикладной протокол поверх сокетов. Этого не надо делать т.к такие протоколы уже созданы. Ключевые слова: jms, mq, apache-mq, kafka, rabbitmq, ibmmq.
    Ответ написан
    Комментировать
  • Java или C++ для сложных задач, проектов и computer science?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    C++ сегодня очень сложен как язык. Порог вхождения высок и новички часто обламывают об него зубы доходя лишь до арифметики указателей. Там - половина ньюкамеров можно выносить ногами вперед. Скорость разработки прикладного ПО под backend на Java значительно выше. Да и облачные технологии такие как Google Clound , Amazon AWS поддерживают все языки кроме С++. Вобщем если автор хочет быстрых денег - то лучше Java.
    В С++ надо вырасти до седых волос чтобы представлять что-то серъезное потому-что стек С++ плотно уходит в операционную систему и железо. Невозможно знать просто С++. Надо быть немного сисадмином и железячником. Иначе в С++ делать нечего.
    Ответ написан
    Комментировать
  • Из-за чего debug assertion failed?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Предположительно ругается стандартная библиотека CRT из за нечетного размера буфера.
    _O_U16TEXT предполагает что символы двухбайтные хотя где-то идёт попытка использовать четное число байт как аргумент.
    Ответ написан
    2 комментария