• Существует ли способ принять и автоматически подставить знак операции с числами в C++?

    GavriKos
    @GavriKos
    В плюсах такого нет напрямую.
    Но есть обходные пути. Самый простой - делаешь функции сложения, вычитания, деления, умножения и т.д. Дальше делаешь словарь (что там вместо него в плюсах? map вроде), ключ - ну пусть будет символ, значение - указатель на функцию.
    И в своей функции ты по символу достаешь указатель на функцию и вызываешь ее с нужными аргументами.

    Результат - свич-кейса нет.
    Ответ написан
    Комментировать
  • Можно ли выкладывать на гитхаб примеры из книг с таким описанием?

    @AVKor
    У меня есть несколько книг по программированию, и в каждой из них перед оглавлением написаны следующие слова:
    "Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фото­ копирование и запись на магнитный носитель, если на это нет письменного разрешения издательства"

    Все эти издательства должны возбудить иски друг против друга за заимствование кода "Hello World".
    Ответ написан
    Комментировать
  • Лучшие источники для изучения CPP?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    В самую первую очередь - это будет документация языка. Ее очень удобно использовать как справочник. Это - твой самый первый источник информации по любому вопросу.
    isocpp поддерживается создателем языка и содержит море полезной информации.
    C++ Core Guidelines является манифестом пользователя C++. Его знать обязательно. Документ регулярно дополняется.

    More C++ Idioms. Шаблоны проектирования имеют свою собственную многомерную классификацию. Идиомы - это функциональные шаблоны проектирования, применимые, как правило, или для конкретного языка, или для некоторого семейства языков. Эта открытая книга помогает ориентироваться в некотором начальном наборе идиом конкретно для языка C++.
    C++ Patterns - еще один полезный ресурс для изучения применимых к C++ шаблонов проектирования.
    С Fluent C++ ты уже знаком.
    Безусловно, блог создателей PVS-Studio.
    Habr, конечно же.
    Блогов очень много, их можно просто найти по релевантной фразе "C++ blog".

    Помимо этого есть большое количество каналов от разных конференций, доклады на которых всегда помогают понять язык лучше.
    С++Russia,
    C++Now,
    Pacific C++,
    CppCon,
    code::dive,
    Meeting C++.

    Так же будет полезно изучить книги авторов:
    Андрея Александреску,
    Герба Саттера,
    Девида Вандервуда,
    Скотта Мейерса,
    Роберта Мартина.
    Есть и другие очень полезные авторы. Тут у меня, пожалуй, только самый основной список.

    Последим, и самым важным, источником будет текущая рабочая версия стандарта языка, а так же пара лабораторий для практики: Compiler Explorer и C++ Insights.
    Ответ написан
    Комментировать
  • С чего начать изучать game dev?

    @xfg
    Авторитетные книги и авторы в этой области отсутствуют. Статьи по основным темам есть:

    Игровой цикл
    Архитектура игры
    Архитектура игры на русском (видео)
    Определение столкновений
    Шейдеры
    Библиотека для работы с 3D графикой
    Библиотека для работы с физикой
    Пример игры на entity-component-system
    Действия над векторами

    Можно также поизучать матрицы преобразования (смещение, поворот, масштабирование), view matrix, perspective matrix, но в целом это уже реализовано в любой библиотеке для работы с 3d.
    Ответ написан
    1 комментарий
  • Быстрый LIKE по 1 миллиону строк, как быть?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вначале, все слова записываем в виде хеша так, чтобы буквы шли по-порядку, но повторные - не повторялись. 'мама мыла раму' => 'ма ылру'
    Можно дополнительно создать еще один кэш и отсортировать в порядке убывания кол-во повторов букв:
    Приведём новый пример: 'мыла раму мама' (переставим слова местами)
    'мыла раму мама' => [м-4][ы-1][л-1][а-4][(пробел)-2][р-1][у-1]=>'ма ылру' (предыдущий пример останется без изменений...)
    и поиск вести по половинам хэша (при нечетном кол-ве -округляем в большую сторону) введённой строки 'ма ылру':
    1. При не найденных совпадениях, порядок такой: 'ма ы'=>'ма'=>'м'
    2. При найденных совпадениях, порядок такой: 'ма ылр'=>'ма ыл' Как выдача будет нулевая - берём предыдущий МИНИМАЛЬНЫЙ! результат выдачи.

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

    Можно составить отдельную таблицу по всем словам и привязать их к основным данным.

    Затем выборка этажеркой:
    1. Преобразуем так же вводимую строку и выбираем LIKE 'ма мыл%'
    (возможно несколько выборок с проверкой пропущенной буквы) запоминая результат выборки.
    2. По этому результату ищем полную строку с тем же LIKE 'мама мыла раму%'
    3. При следующем поиске, если хэш не уменьшился и символы в диапазоне длины предыдущего хэша не изменились - мы ищем СРАЗУ ЖЕ! по результату п.1 (и снова запоминаем результат), экономя время (т.е. поиск как бы идёт по предыдущему кэшу).

    Таким образом получается, что чем больше букв, тем меньше записей мы перебираем.
    А чем меньше мы перебираем, тем больше у нас времени остаётся и мы можем его использовать на дополнительные запросы: для нечеткого поиска.
    Ответ написан
    Комментировать
  • Как повысить пропускную способность локальной сети?

    saboteur_kiev
    @saboteur_kiev Куратор тега Железо
    software engineer
    В самой настройке подключения указано, что коннект завелся на какой скорости?
    Кроме самбы, остальные протоколы как работают в локалке? ftp/http?
    Ответ написан
    Комментировать
  • Как повысить пропускную способность локальной сети?

    alexclear
    @alexclear
    A cat
    Ответить на вопрос "почему", не производя никаких измерений и не имея доступа в Вашу сеть, довольно сложно.
    Для начала, попробуйте протестировать пропускную способность сети между машинами при помощи iperf - это даст ответ на вопрос о том, нужны ли другие кабели, или дело не в физическом уровне, а выше.
    Ответ написан
    1 комментарий
  • Когда изучать npm, grunt, bower, git и т.д?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    npm/bower упрощают установку сторонних библиотек. Чтобы ходить по сайтам и скачивать jQuery, jQueryUI, Bootstrap и т.д., все это ставится одной командой.

    grunt/gulp -- таскраннеры, позволяют организовать хитрую компиляцию/склейку файлов/минификацию и прочее, что может понадобиться фронтендеру. Во-первых, это не только LESS, но еще миллион всяких вещей, во-вторых, это настраивается на проект и один раз (то есть не надо каждому разрабу ставить WinLESS и настраивать его).

    git/mercurial/svn -- система контроля версий. В команде без этого никуда (и никто за вас не будет коммитить код), но и при одиночной разработке есть профит.
    Ответ написан
    Комментировать