Senior C++ Developer – Telegram
Senior C++ Developer
12.3K subscribers
1.36K photos
3 videos
610 links
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr

РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba
Download Telegram
👨‍💻 Полный курс по C++

Большой плейлист из более чем 200 коротких уроков по C++. Отлично подойдёт тем, кто хочет учить этот язык постепенно по 5-15 минут в день.

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

https://youtu.be/kRcbYLK3OnQ
Алгоритм accumulate

Возвращает сумму всех значений, лежащих в диапазоне между [first, last) с переменной init.
#вопросы_с_собеседований
Что делает данный код?

Правильный ответ: ничего не делает.

int main() // Функция main без аргументов.
{
[] // Объявление лямбда-функции без списка захвата...
() // ... с пустым списком аргументов ...
{} // ... и пустым телом, ...
(); // ... которая тут же вызывается.
}
Задача

В текстовом файле, содержащем текст программы на языке Си, проверить соответствие открывающихся и закрывающихся фигурных скобок { и }. Результат проверки вывести на экран и записать в виде фразы в текстовый файл. Результат работы программы (вывод) поместить в отдельный текстовый файл (например, "out . txt " ), продублировав на экране.
с новым годом, дорогие подписчики. надеюсь следующий год будет не на таких унылиусах как этот
Создание игр на C++: Марио (платформер)

Смотреть видео
Алгоритмы диапазонов C++20 — 7 немодифицирующих операций

Библиотека Ranges для C++20 предлагает альтернативы для большинства алгоритмов. Автор показывает десять немодифицирующих операций. Происходит их сравнение со «старой» стандартной версией и показывается их преимущества и ограничения.

Смотреть статью
Функция isprint()

В C++ isprint() — это предопределенная функция, используемая для обработки строк и символов. cstring — это заголовочный файл, необходимый для строковых функций, а cctype — заголовочный файл, необходимый для символьных функций.

Эта функция используется для проверки того, содержит ли аргумент какие-либо печатные символы.

Подробнее можно почитать здесь.
#вопросы_с_собеседований
Какой код выполняется до функции main?

Ответ:
Конструкторы глобальных объектов.
Вывод параметра шаблона класса

Довольно странное название функции, да? Её суть в том, что с C++17 компилятор может сам определять типы аргументов конструкторов стандартных классов. Раньше же это работало лишь для функций.

Для того, чтобы осознать удобство этой функции, нужно быть знакомыми с конструкторами классов в C++.
Функция none_of()

Эта функция возвращает true, если ни один из элементов не удовлетворяет данному условию, иначе возвращает false.

Поскольку все элементы положительны, функция возвращает true.
Является ли число степенью двойки

Мы можем проверить, является ли число степенью двойки или нет напрямую, используя код выше. :D
Использование emplace_back вместо push_back

В C++ 11 emplace_back работает так же, как push_back, добавляя элементы в конец вектора. emplace_back работает быстрее, так как push_back сначала создает временную переменную, а затем добавляет ее в конец вектора.
Алгоритм copy_n

Используется для копирования элементов из одного контейнера в другой.
malloc стал безопасен

В предыдущих версиях использование низкоуровневых функций, унаследованных из языка Си, не рекомендовалось. Проблема в том, что Си оперирует байтами, а в С++ происходит работа с объектами со своим временем жизни и областью видимости. До С++ 20 время жизни объекта начиналось после вызова оператора new. В новой версии все изменилось — принято считать, что набор низкоуровневых функций — memcpy, memmove, malloc, aligned_alloc, calloc, realloc, bit_cast, начинает время жизни объекта. Т. е. следующий код(см картинку) будет валиден.

Т. е. у нас появляется обратная совместимость с языком Си, но относительно С++ в новой трактовке.
Избавляемся от макросов

В целом, разработчики стандарта стараются исключить препроцессор. Как следствие, в новой версии можно не пользоваться макросами FILE и LINE, а взамен использовать std::source_location(см картинку).

Как мы видим, код становится более единообразным, в одном стиле, с расширяемым функционалом.
Что выведет код сверху?
Anonymous Quiz
45%
Рандомное значение
33%
0
10%
99
12%
Runtime error