C++ Learning
10.4K subscribers
1.48K photos
4 videos
7 files
1.04K links
№ 4974310652

Обучающий канал по C++

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Learning_pluses
Download Telegram
Может ли GCC заменить рекурсию циклом для оптимизации?
Anonymous Quiz
70%
Да
30%
Нет
Макросы и функции

При первом знакомстве макросы могут показаться обычными вызовами функций. Конечно, у них немного странный синтаксис, но они «ведут себя» как обычные функции. Тогда в чём разница?

Макрос можно условно назвать функцией обработки и замены программного кода: после сборки программы макросы заменяются макроопределениями. На картинке показан код на Си.
string at()

std::string::at можно использовать для извлечения символов по символам из заданной строки.

Подробнее ознакомиться можно здесь.
#Вопросы_с_собеседования

Сколько раз будут выполняться циклы внутри программы?

Ответ:
Ответ: в первом случае цикл не выполнится никогда, а во втором случае будет выполняться бесконечно.

Объяснение:
В первом цикле условие прекращения цикла имеет тип беззнакового char, значит, у нас присвоение n 256 вызовет переполнение и n станет равным 0. Цикл превратится в for(unsigned char i = 0; i < 0; ++i), а, значит, условие цикла не выполняется, и мы даже не войдём в тело цикла. Во втором цикле другая ситуация, он превращается в for(unsigned char i = 0; i < 256; ++i), и так как i не может быть больше, чем 255, то условие цикла будет выполняться всегда.
Алгоритм includes

Используется для распознавания, существуют ли все числа тз одного контейнера в других контейнерах. Это помогает проверить, является ли набор подмножеством другого набора или нет, учитывая, что набор упорядочен. Ожидается, что элементы будут отсортированы по порядку.
Как написать чит для кс го за 30 секунд на c++

В этом видео вы узнаете как написать чит для кс го за 30 секунд на языке программирования c++ и это очень хороший и обучающий туториал по написанию читов для кс го и не только

Смотреть видео
Альфа-бета фильтр Калмана: фильтр «Hello, world!»

Данная статья подойдёт прежде всего для новичков, которые ничего не понимают в фильтрации, а стандартный и адаптивный фильтры Калмана вызывают недоумение. Прошу отнестись к ней с этой оговоркой.
Фильтрация нужна везде, где есть шум, а значит её применение имеет очень широкий диапазон.

Смотреть статью
Жадный алгоритм
Данный алгоритм на каждом шаге делает локально оптимальный выбор, надеясь в итоге получить глобально оптимальное решение.

Пример: Дробный Рюкзак
Задача состоит в том, чтобы выбрать, какие предметы, имеющие вес и стоимость, поместить в рюкзак ограниченной ёмкости W, да так, чтобы максимизировать общую ценность его содержимого. Мы можем определить соотношение стоимости предмета к его весу, т. е. с «жадностью» выбирать предметы, имеющие высокую стоимость, но в то же время маленький вес, а затем сортировать их по этим критериям. В задаче с дробным рюкзаком нам разрешено брать дробные части предмета.

Поскольку сортировка — самая дорогая операция, алгоритм работает за время O(n log n). Принимая в формате (стоимость, вес) три пары предметов — {(60, 10), (100, 20), (120, 30)} — и итоговую вместительность рюкзака W = 50, приведённый выше код выводит следующее:
жадный дробный рюкзак
максимальная ценность: 240.
Алгоритм is_partitioned

Используется для определения того, разделен ли диапазон [first, last) или нет. Говорят, что диапазон разделен относительно условия, если все элементы, для которых условие оценивается как истинное, предшествуют тем, для которых оно является ложным.
Указатели с ключевыми словами const и volatile

Ключевые слова const и volatile изменяют то, как обрабатываются указатели. const указывает, что данные по указателю не могут быть изменены после инициализации; volatile указывает, что значение может быть изменено действиями, отличными от тех, которые указаны в пользовательском приложении.

volatile полезно для объявления объектов в общей памяти, к которым могут обращаться несколько процессов или для глобальных областей данных.
Алгоритм swap_ranges

Совершает обмен элементами между диапазоном [first1, last1) и другим диапазоном, начинающимся с first2.
Ключевые слова C++

Следующий список показывает зарезервированные слова в C ++.

Эти зарезервированные слова не могут использоваться как константные или переменные или любые другие имена идентификаторов.
Forwarded from Python Learning
LeetCode теперь в Telegram!

LeetCode — это сайт, который позволяет быстро готовиться к техническим собеседованиям по программированию. Там публикуются задачи с собеседований в Google и Microsoft с решениями.

Подписывайтесь: @leetcode
Квадратный корень и квадратный квадрат

Найдите такое число x, что x^2 + sqrt(x) = C, с точностью не менее 6 знаков после точки.

Формат входных данных:
В единственной строке содержится вещественное число C (1 ≤ C ≤ 10^10).

Формат выходных данных:
Выведите одно число — искомый x.
C++23 — финал, C++26 — начало

Смотреть статью
Токенизация строки

Токенизация строки означает разделение строки относительно некоторого разделителя (разделителей). Есть много способов этого добиться.

Рассмотрим пример с функцией strtok(). Она разбивает строку по указанным разделителям и должна быть вызвана в цикле, на каждой итерации возвращая следующую часть. В конце возвращает NULL.
#Вопросы_с_собоседования

В чем различия между delete и delete[]?

delete предназначен для уничтожения объектов, память под которые выделена при помощи new(). delete[] для объектов выделенных при помощи оператора new[]().

При неправильном использовании оператора delete (например, delete вместо delete[]) результат будет: undefined behavior.
Алгоритм copy_n

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