Ответы пользователя по тегу C++
  • Как нарисовать кривую Серпинского (см. ниже), не используя графические библиотеки, а '*' или слешы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Самый простой путь - рисовать эту картинку внутри матрицы (растр).
    А потом перевести элементы этой матрицы в псевдографику https://en.wikipedia.org/wiki/Box-drawing_character

    Но я тебе это не советую, потому что выглядит как сильно грубое разрешение.

    Рисование слешами или зведочками возможно. Но это ASCII art. Иногда выглядит красиво
    а иногда вообще нечитабельно.
    Ответ написан
    4 комментария
  • Как найти минимальный ограничивающий параллелепипед?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не уверен что стоит вообще искать идеальное решение. Особенно для 800 точек. Задача
    пахнет комбинаторной со всеми вытекающими.

    Я-бы предложил дать программе время (секунд) или количество итераций через которые
    она должна выдать почти-минимальный параллелепипед. Но мы при этом понимаем что это не самый идеальный.

    Для малого числа точек (8) можно построить выпуклую оболочку. И попробовать прикладывать
    первую грань параллелепипеда к каждой грани выпуклой оболочки. А оставшиеся грани мы можем
    получить вращением параллелепипеда до тех пор пока bounding volume не будет минимален.
    Учитывая дискретность выпуклой оболочки, поворот тоже может быть дискретным. Например там
    проверить штук 20 углов. Вот как-то так.
    Ответ написан
    2 комментария
  • Неверная компиляция классов C++ в Unreal engine 5?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Начни с простого. Сделай новый проект в UE и сымитируй одну ошибку. Так проще разбираться.
    Ответ написан
    Комментировать
  • Есть ли хорошие пошаговые туториалы проектов на С++ для новичков?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно С++ в вакууме не существует. Его учат сразу применительно к программированию UI под Windows,
    или к Unreal Engine, или к сетевому программированию под Linux/Unix. Или еще более специфичный
    сегмент - сетевое оборудование и микроконтрллеры. Это неизбежно.

    Особенно когда ты доходишь до дисковой подсистемы, сетей или мультизадачности - ты просто выходишь за рамки С++ и нужно разбираться во всем остальном. И мне кажется что в этом главный челлендж. Не сам язык а
    системная архитектура и прикладные фреймворки.

    Тоесть в самом вопросе ты должен сам решить куда ты дальше со знаниями С++ пойдешь.

    P.S. С++ за 14 дней... - это завсегда можно найти.
    Ответ написан
    3 комментария
  • Где ошибка в коде?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот тут как-то странно написано.
    if(m == 'd') racket.x + 1;
    if(m == 'a') racket.x - 1;


    Если хочешь чтоб результат сохранился то надо или инкремент написать или выражение с присваиванием
    racket.x = racket.x + 1;
    Ответ написан
    2 комментария
  • Почему если выносим конструкции из шаблонной функции, нужно заново прописывать тип и шаблон?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Декларация класса и реализация его методов могут лежать в разных файлах исходного кода (*.h, *.cpp)
    Ответ написан
    Комментировать
  • Как параллельно подгружать файлы в C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У тебя должна быть shared memory для всех потоков-участников этого процесса.
    И один из потоков (главный) должен заранее планировать что какие-то части
    файлов должны находится в shared memory в нужное время. Технически
    для C/C++ это решенная задача. Тут единственное что интересно - это
    обсуждать логику главного потока. Тоесть когда и в какой момент времени
    главный должен решать что подгружать. А может он передумает и решит
    что надо срочно выгружать потому что сюжет игры меняется. Или игрок
    будет бегать между 2 левлами через портал и постоянно перегружать
    уровни туда-сюда.
    Ответ написан
  • Не работает простой код хотя он правильный в чем может быть проблема?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Так вроде лучше

    for (int i = 0; i < 10; i++) {
            cout << i << endl;
    }
    Ответ написан
  • Как обойти все исполнения программы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Посмотри ключик
    -fsanitize=thread

    и еще посмотри PVS Studio. Вроде у них был статический анализ таких ситуаций но я точно не уверен.
    Надо искать инфу.
    Ответ написан
    8 комментариев
  • Как сделать стрельбу под бит трека?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Думаю да. Нужно наверное отказаться от mp3 и сделать трекерную музыку.

    Я вот когда играл в Serious Sam -1 помню там когда enemies наполняли локацию - то и музыка
    как-то усиливалась и угнетала сильно. Но в Сэме наверное трекерная музыка была. Там проще
    было ритм и музыкальные партии задавать просто меняя семплы.
    Ответ написан
    3 комментария
  • Как оформить код?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В коде повторяется вектор векторов int. Это по смыслу - матрица. Вот можно создать свой тип матрица или после такой подстановки будет яснее и короче.
    Ответ написан
    Комментировать
  • Работа с изображениям, как создать своё на C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В наше время уже почти никто не пишет такие библиотеки. Все вроде написано. Проблемы с писательством библиотек такие. Если ты кодишь на сях под Windows то ты полюбому захочешь как-то их отображать и тебе в библиотеку придется вводить сущности мира WinGDI например.

    Поиск изображения внутри скриншота - это тяжелая задача. Алгоритмически тяжелая. И здесь обычно привлекают нейросети, преобразования Фурье, хеш-коды изображений и прочие функции которые уходят от растра к другому виду данных которые более пригодны для быстрого поиска.

    По названиям нейросетей я ничего не скажу я их не знаю в именах. Поищи их названия в Python-библиотеках.
    Они на слуху. А потом он них - найдешь оригинальное название на сях.

    Посмотри еще в ImageMagic https://imagemagick.org/script/magick++.php может пригодится
    Ответ написан
    Комментировать
  • Сложно ли создать тг бота на c++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется что проблема не в телеграм библиотеках а как всегда в классических вопросах С++.
    Контроль над памятью например. И если взять за формулу что ТГ-бот - это типичное реактивное
    приложение то преимуществ С++ здесь вобщем-то нет. Нету задач которые бы загрузили CPU.

    А если задачу развивать в части интеграции например с MQ/документными БД (Mongo) или с
    веб-апи криптовалют то окажется что С++ в такой интеграции стоит еще в 2 раза дороже
    и во времени разработки и в поддержке. А конечному пользователю вообще плевать на чем
    бакенд бота написан.

    И окажется в сухом остатке что наговнячить бота на Node или на Python будет дешевле. И поддерживать
    код тоже дешевле. Вносить изменения - легче и быстрее. Для бизнеса - вообще скорость внесения
    изменений в продукт - это метрика №1. Кто вышел с маркетинг акцией в срок - тот заработал денег.

    Если-бы я был бизнесом и хотел бы свой ТГ-бот то я-бы не вкладывался в С++ (хотя я уважаю этот язык).
    Я-бы нанял команду Ноде-Жс и все было бы норм.
    Ответ написан
    Комментировать
  • Как подключиться к Wifi на C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе работать с Wifi на С++ нужно будет только в одном случае - когда ты разработчик драйвера Wifi устройства.

    В остальных случаях - ты пишешь обычные приложения на С++ которые используют сокеты TCP/UDP, которые (сокеты) в свою очередь работают через стек технологий ОС для кидания пакетов в Wifi интерфейсы в соотвествии с правилами таблиц маршрутов.
    Ответ написан
    2 комментария
  • Не получается сделать exe. Почему?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Он скорее всего работает. Просто консоль так быстро появляетя и исчезает что ты не успеваешь разглядеть.
    Там сразу после печати Hello идет return.

    Добавь туда cin >> для того чтоб было какое-то ожидание от пользователя.
    Ответ написан
    1 комментарий
  • Как вывести буквы, которые используется наиболее кол-во раз?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно отсортировать массив букв любым алгоритмом. Тогда буквы выстроятся в серии.
    Например

    aaaaaabbccccccccccdeeeeggggff

    И тогда самая длинная серия и будет ответом.

    Антагонист этого метода - это сортировка подсчетом. Это то о чем писал Wataru.
    Оба метода - рабочие. Можно обсуждать тонкости которые в задаче не были заданы.

    Стоит ли их обсуждать? ХЗ
    Ответ написан
  • Почему в Java изменение интерфейса базового класса посредством модификации сигнатуры разрешено?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Несмотря на то что java/c++ формально являются ООП языками, многие вещи
    с перегрузкой у них реализованы по разному. В случае с методом sound в Java
    скорее всего будет создано просто 2 метода (разные сигнатуры).
    Ответ написан
  • Где можно почитать/посмотреть о написании dll на c++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Классическое С++/dll программирование для прикладника теряет смысл. Весь прикладной и бизнес код
    пишут на .Net или Java
    . А там по большей части и dll - другие.

    Какой такой сегмент разработки может от вас потребовать именно знаний Windows/DLL? Я не знаю. Может
    gamedev? Там щас тоже все нишевое. Разделено на UE/Unity. Своя вселенная короче.

    Может антивирусы и ИБ? Ну не знаю. Эти ребята вобщем-то даже не программисты. У них - другие задачи.

    Вобщем не берите в голову. Университет едет по очень старым рельсам. И это вам скорее всего не нужно.
    Не дай бох вам еще там будут Delphi читать или Borland C++ Builder. Старые куколды блин. Никак не
    перестроются под рынок.
    Ответ написан
    Комментировать
  • Как продвигаться дальше?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вместе с С++ хорошо сочетается знания алгоритмов и железа.
    Попробуй для практики зарегистрироваться на codewars / leetcode и прочих задачниках
    и порешай задания. По железу. Поразбирайся с Arduino, Raspberry. Сделай что нибудь полезное.
    Ответ написан
    Комментировать
  • Как я могу конвертировать число в символ?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    System.out.println((char)3);

    Так не надо делать. Это получение Unicode символа по коду 3.
    Оно сработает но с точки зрения code-review некрасиво и твоя команда
    будет тебя бить и чморить за такой способ кастинга.

    В java есть специальные литералы для работы с кодировками.
    Например для символа с кодом 3 (однобайтного типа ASCII)
    '\x03'
    Или например для кириллической буквы А в кодировке UTF-16
    '\u0430'
    Ответ написан
    3 комментария