Задать вопрос
Ответы пользователя по тегу C++
  • Как в 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 комментария
  • Можно ли и имеет ли смысл этот код перенести на OpenCL?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего параллелизм ничего не даст. Дело в том что параллелятся задачи когда
    1) Shared nothing. Есть множество процессов и они работают со своими массивами данных а потом сливают результат в некий итог.
    2) Шарятся данные но при этом они иммутабельные.
    В твоём случае используются операции такие std::reverse, QVector::mid. Они ломают общий снапшот данных и не дают выполится пункту (2).

    Вобщем надо серъезно сломать алгоритм чтобы получить ползу от параллелизма.
    Ответ написан
    1 комментарий
  • Время работы куска кода в миллисекундах?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Значит до того как автор начал что-то мерять. Обычно такая задача ставиться в поиске узких мест в приложении. В данном конкретном случае - узкое место это работа с cout. Ее надо устранить и заменить на работу с файлами. Или просто уменьшить объем трафика который пройдет через cout. Вообще нет особого смысла так часто печатать что-то на консоль. Всё равно человек глазами так быстро не видит. Бешеный скрол экрана не имеет смысла кроме того еще и потребляет ценные мега-флопы.
    Ответ написан
  • Как сделать двухмерный динамический массив в котором в одной ячейке может храниться несколько чисел?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если знать реальные ограничения на бизнес-данные то может оказаться что массив-массивов тоже не нужен и всё сводится к матрице фиксированного размера. Также таплы и кортежи фиксированого размера формулой сводятся вообще к массиву одномерному.
    int get(vector<int> v, row, column, elem)
    Ответ написан
    Комментировать
  • Где можно найти нормальный учебник по графам?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Новиков - Дискретная Математика для программистов.
    Оре - Теория Графов (это классика которую все должны были зубрить в универе)
    Ответ написан
    Комментировать
  • Почему xor шифрование в php не работает как надо?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Очень сильно не нравится эти игры с разрядностью char.

    sizeof(key) / sizeof(char)

    Код на С++ написан гетерогенно по отношению к длине символа. Тоесть предполагается что если он будет 1 байт то будет одна логика а если 2 байта то другая. Это очень серъезный gap в архитектуре и его надо обсуждать. Вообще шифрующие алгоритмы пишутся на байтах а не на символах. И оптимизируются соотвественно. Библиотеки CryptoApi и OpenSSL будут в помощь. Надо опираться на них а не на кустарные складыватели по модулю два которые к шифрованию не имеют отношения.
    Ответ написан
    Комментировать
  • Производительность typedef?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно посмотреть ассемблерный выхлоп для обоих вариантов. diff между двумя ассемблерами прояснит суть проблемы.
    Ответ написан
  • Вылетает бесконечное число "cout" при вводе символа. Что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Здесь - бесконечный цикл. Нужно условие while (1 == 1); переписать на какое-то более осмысленное.
    Ответ написан
    Комментировать
  • Как удалить файл с помощью функции DeleteFile() в C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Код 2 соответствует ошибке ERROR_FILE_NOT_FOUND.
    Возможно есть какие-то конвенции или ограничения на формат имени для DeleteFile
    Почитай отсюдова https://docs.microsoft.com/en-us/windows/win32/api...
    Ответ написан
    Комментировать
  • Выбор компилятора для c++, какой выбрать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Компиллятор выбирается исходя из целевой платформы. Например если вы будете разрабатывать только под Windows - то вам дорога в Microsoft Visual C++. Если под Linux/BSD, то можно брать gcc/clang. Фичи у них у всех - примерно одинаковые.
    Ответ написан
    Комментировать