Dyzzet|
C++ Data Science Алгоритмы Темы · Блог · YouTube · Telegram
Колонками
Постранично
16 января 2022
Асимптотики

27 декабря 2021
Обзоры книг по C++. Структуры данных, алгоритмы, решение прикладных задач

Книги по классическим алгоритмам и структурам данных и сборники задач с решениями. Сборники задач по самому языку C++ будут в части с обзорами профессиональной литературы.

Мариус Бансила. Решение задач на современном C++

302 страницы. ДМК, 2019

Marius Bancila. The Modern C++ Challenge. Packt, 2018

Задачи и решения на C++17.

Вот темы и некоторые задачи:

  • математические задачи (код Грея, преобразование чисел в римскую запись, вычисление \(\pi\), проверка ISBN...),
  • особенности языка (перечисление адресов в IPv4, двумерный массив с базовыми операциями, функция min() с переменным числом аргументов, литералы разных температурных шкал...),
  • строки и регулярные выражения, потоки данных и файловые системы (треугольник Паскаля, удаление пустых строк из файла, удаление файлов старше заданной даты...),
  • дата и время (время выполнения программы, число дней между датами, календарь на месяц...),
  • алгоритмы и структуры данных (очередь с приоритетом, циклический буфер, двойной буфер, самый часто встречающийся элемент в диапазоне, текстовая гистограмма, фильтрация списка телефонных номеров, преобразование списка телефонных номеров, генерация всех перестановок символов в строке, средний рейтинг фильмов, алгоритм объединения в пары, алгоритм «сшивания», алгоритм выбора, алгоритм сортировки, кратчайший путь между узлами, программа Weasel, игра «Жизнь»),
  • конкурентность, шаблоны проектирования (проверка пароля, генерация паролей...),
  • сериализация данных (XML, JSON, создание PDF из коллекции изображений),
  • архивы, изображения и базы данных (поиск в ZIP-архиве, создание PNG-файла, работа с SQLite),
  • криптография (шифры, Base64, хеш-сумма файла...), сети и службы.

Читать далее →
18 декабря 2021
using namespace std

Пространства имён появились в 1993 году. Наверное, с тех пор и идут споры о директиве using namespace std и других подобных. Посмотрим, хорошо это или плохо и как пишут в разных компаниях (Google, Epic Games, Qt Company).

Что мы обычно видим.

#include <iostream>
using namespace std;
 
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

На первый взгляд, удобно. Но в последующем возможны конфликты имён.

Читать далее →
29 ноября 2021
Обзоры книг по C++. Стандартная библиотека шаблонов

В этой части — обзоры книг о стандартной библиотеке шаблонов C++ (STL, Standard Template Library). Эта библиотека ведёт свою историю с начала 1990-х, когда её разрабатывал Александр Степанов в компании HP.

Что-то в книгах со временем устаревает, например, встречается умный указатель auto_ptr. Тем временем в последних стандартах появилось очень много нововведений: в C++11  — многопоточность, работа с точным временем, новые генераторы случайных чисел, std::array, std::forward_list, std::unordered_map и пр., в C++17 — std::string_view, математические функции, работа с файловой системой, вариативный тип std::any, параллельные версии для алгоритмов и множество мелких улучшений, в C++20 — невладеющие указатели на массив std::span, библиотека для работы с битами, ranges, chrono, расширенная библиотека потоков и пр.

Леен Аммерааль. STL для программистов на C++

240 страниц. ДМК, 1999

Leen Ammeraal. STL for C++ Programmers. John Wiley, 1997

Книга начинается с короткого введения в шаблоны, экскурса в историю (как разработка HP вошла в стандарт).

Читать далее →
5 ноября 2021
Обзоры книг по C++. Русскоязычная литература. Часть IV (П—Я)

Татьяна Александровна Павловская. C/C++. Программирование на языке высокого уровня

464 страницы. Питер, 2021

В соавторстве с Юрием Абрамовичем Щупаком Татьяна Александровна выпустила практикумы по структурному (239 с.) и объектно-ориентированному программированию (265 с.). Разделы озаглавлены как «семинары», то есть это методическая поддержка для преподавателя, а не что-то полезное для студента.

Книга по несуществующему языку C/C++. Структурное программирование, ООП и библиотека.

В начале: алфавит, лексема... ну сколько можно. Форматирование, конечно, будет плохим, порой — «стеночкой». С транслитом (sort_vybor).

Терминология местами вольная: то «помеченный оператор» (совсем не оператор), то «метка».

Читать далее →
4 ноября 2021
Обзоры книг по C++. Русскоязычная литература. Часть III (Ку—О)

Максим Валерьевич Кузнецов, Игорь Вячеславович Симдянов. C++. Мастер-класс в задачах и примерах

480 страниц. БХВ-Петербург, 2007

Сборник плохо отформатированных ошибок.

int i = 10;
 
if(++i == i++) cout << "числа равны\n";
else cout << "числа не равны\n";
 
if(i++ == ++i) cout << "числа равны\n";
else cout << "числа не равны\n";
 
if(++i == ++i) cout << "числа равны\n";
else cout << "числа не равны\n";
 
if(i++ == i++) cout << "числа равны\n";
else cout << "числа не равны\n";
 
if(i++ == -- i) cout << "числа равны\n";
else cout << "числа не равны\n";
 
if(i++ == i--) cout << "числа равны\n";
else cout << "числа не равны\n";
 
if(i-- == ++i) cout << "числа равны\n";
else cout << "числа не равны\n";
 
if(i-- == i++) cout << "числа равны\n";
else cout << "числа не равны\n";

Читать далее →
3 ноября 2021
Обзоры книг по C++. Русскоязычная литература. Часть II (Д—Кр)

Владимир Григорьевич Давыдов. Программирование и основы алгоритмизации

447 страниц. Высшая школа, 2003

Эта книга не обещает научить языку C++, к тому же автор упорно пишет Си/C++. В основном будет часть, совместимая с C (в том числе константы не const, а #define). Форматирование будет не идеальное, где-то — транслит (kaf_name — «название кафедры»).

Сперва идут системы счисления, история языков программирования, блок-схемы. Автор немного знакомит с грамматиками и тем, как их представляют.

Читать далее →
13 августа 2021
Не хот-дог

В сериале «Кремниевая долина» (S04E04) Цзань Янг показывает приложение, которое распознаёт еду. Эрлих даже обещает подарить ему за это палапу. К сожалению, оказывается, что приложение лишь определяет, хот-дог это или нет.

© 2017 Home Box Office, Inc.

Но вот, например, что пишет в своей книге «Машинное обучение без лишних слов» Андрей Бурков.

Одноклассовая классификация

Иногда в наличии имеются только данные одного класса и нужно обучить модель, которая будет отличать данные этого класса от всех остальных данных.

Одноклассовая классификация, также известная как унарная классификация, или моделирование класса, решает задачу идентификации объектов определённого класса среди всех объектов через обучение на наборе, содержащем только объекты этого класса. Эта задача сложнее и отличается от традиционной задачи классификации, целью которой является выявление различий между двумя или более классами с помощью обучающего набора, содержащего объекты всех классов. Типичным примером задачи одноклассовой классификации может служить классификация допустимого трафика в защищённой компьютерной сети. В этом сценарии обычно имеется очень немного примеров трафика, порождаемого атакующим злоумышленником, если такие примеры вообще есть. Зато примеров допустимого трафика часто сколько угодно. Алгоритмы обучения одноклассовой классификации используются для обнаружения выбросов, аномалий и новых данных.

То есть Цзань Янгу проще было сделать нейросеть, которая определяла бы несколько видов чего-то, а не просто «хот-дог — не хот-дог». Просто небольшой факт.

3 мая 2021
Обзоры книг по C++. Русскоязычная литература. Часть I (А—Г)

Здесь перечислена базовая литература по языку C++ русскоязычных авторов, кроме книг, опубликованных издательствами университетов, и книг по конкретным технологиям (C++ Builder, Visual C++, Qt). Русскоязычная литература для профессионалов, специальная литература и книги по STL — в соответствующих разделах.

Аверкин В. П., Бобровский А. И., Веснич В. В., Радушинский В. Ф., Хомоненко Анатолий Дмитриевич. Программирование на C++

256 страниц. Корона-Принт, 1999

Книгу сопровождает комментарий «Под редакцией профессора А. Д. Хомоненко», ему же принадлежит и предисловие. Этот автор написал и другие книги — по языку Delphi и базам данных.

Введение очень формальное, многое вываливается безо всякого объяснения. Книга совершенно устаревшая, оформление кода ужасное, практически хаотичное. Некоторые вещи не выдерживают никакой критики (неправильная типографика и странный абсолютный путь).

#include “f:\POS_C\PRIMER\point.cpp“

А некоторые — просто ошибочны. Здесь вместо delete[] авторы написали delete (к тому же используется транслит и неоправданное сокращение).

int *mas=new int[n];
 . . .
delete mas;

Хотя в этой части нет книг, полностью посвящённых конкретным технологиям, последняя глава этой книги с кучей скриншотов показывает работу с Borland C++ Builder.

Читать далее →
16 апреля 2021
Быстрая сортировка. Вариант с указателем. Интерактивная анимация

Первый вариант быстрой сортировки

Реализация быстрой сортировки со следующими аргументами функции: указатель на начало массива и его размер. В предыдущей реализации нумерация элементов подмассива всегда велась относительно начала исходного массива, в рекурсивные вызовы передавались аргументы left и right, обозначающие границы подмассивов.

Как и ранее, подмассив, с которым работает конкретный рекурсивный вызов, выделен чёрным цветом и подчёркнут синей линией. Для большей наглядности показано data[0] (значение самого левого элемента текущего подмассива).

Читать далее →
9 8
7
6 5 4 3 2 1
© MMXI—MMXXV. RSS
 Boosty
Светлая тема / тёмная тема