2024 · cpp-course · линия «учёба»

Курс C++

Учебные задачи 2024 года: поисковый сервер, свои контейнеры, препроцессор.

status
архив
stack
C++17 · STL
since
2024

черновик · текст собрал Claude по репозиториям и заметкам, перепишу сам

Учебный курс по C++ — первые программы, которые я писал на этом языке руками и сдавал на проверку. Активная часть — май–октябрь 2024 года.

Параллельно, в мае–июне, — консольный тренажёр слепой печати на PDCurses.

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

Фрагмент

Конструктор односвязного списка из диапазона итераторов: элементы сначала собираются во временный список, а потом меняются местами с текущим — если что-то упадёт посередине, исходный список не пострадает.

template <typename Iterator>
SingleLinkedList(Iterator begin, Iterator end) {
    assert(size_ == 0 && head_.next_node == nullptr);
    SingleLinkedList temp;
    Node** last_element_temp = &temp.head_.next_node;
    while (begin != end)
    {
        *last_element_temp = new Node(*begin, nullptr);
        last_element_temp = &(*last_element_temp)->next_node;
        ++temp.size_;
        ++begin;
    }
    swap(temp);
}