Публикации по теме 'cpp'


Что такое постоянные ссылки в C++ и как их использовать?
Современный C++ использует множество модификаторов, и они ошеломляют, пока вы не наберетесь опыта. Сегодня вы узнаете о постоянных ссылках и о том, когда их следует использовать. TL;DR Постоянные ссылки выглядят так: void my_function(const std::string& my_reference) { ... } Используйте их при передаче больших неизменяемых значений в функции. Если функции необходимо изменить копию данных, не используйте ссылку. Если функции необходимо изменить исходные данные, используйте..

Как передать вариативное количество аргументов одного типа с С++ 20
Несколько лет назад Джонатан Боккара написал в своем замечательном блоге Fluent{C++} серию статей о том, как передать в функцию переменное количество аргументов одного типа; в то время я участвовал в поиске одного из способов достижения этой цели (и, кстати, статьи вы можете найти здесь: https://www.fluentcpp.com/2019/01/25/variadic-number- тип-параметров-функции/ ). Многие из решений, найденных в то время, включали SFINAE и/или другие методы, и хотя я уже знал об концепциях , я еще..

Решето Эратосфена — Программа для поиска всех простых чисел, меньших заданного числа.
Решето Эратосфена — это очень старый алгоритм поиска всех простых чисел до заданного предела. Например, мы можем найти все простые числа, скажем, до 101, используя этот алгоритм очень эффективно. Он делает это, итеративно помечая как составные числа, кратные каждому простому числу, начиная с первого простого числа, 2. Кратные числа данного простого числа генерируются как последовательность чисел, начиная с этого простого числа, с постоянной разницей между ними, равной тот премьер...

Что такое РАИИ?
Краткое объяснение всеми любимой аббревиатуры C++ :) Как это принято в C++, знание того, что означает аббревиатура, не поможет вам понять концепцию, стоящую за ней. RAII не является исключением. Итак, давайте вместо этого просто предположим, что это означает: деструкторы-очистка-после-области Да мелочь это все. Давайте посмотрим на пример: struct Foo { Foo() { x = new int[10]{42}; } ~Foo() { delete[] x; } int* x; }; void bar() { Foo foo;..

Реализация простого связанного списка C++ (шаблоны классов)
Если вы здесь ищете реализацию связанного списка на C++, я предполагаю, что вы уже концептуально понимаете, как работает связанный список. Если нет, то это видео на YouTube довольно хорошо объясняет это. Поговорим о его реализации. Предварительные условия для понимания приведенного ниже кода: Шаблоны классов (и шаблоны функций): https://www.youtube.com/watch?v=CWj7lLY2GLA Указатели в C++: https://www.youtube.com/watch?v=zuegQmMdy8M Базовое понимание С++ Поскольку в..

А как насчет директив препроцессора в C ++?
Директивы препроцессора - это особые инструкции для компилятора, данные перед вызовом компиляции реального кода. Таких директив несколько. Несколько важных категорий таких директив включают (i) определения макросов (ii) включения условий (iii) управление строкой и (iv) директивы об ошибках. Макроопределения Определения макросов можно получить с помощью #define и можно не определять с помощью #undef Когда препроцессор C ++ встречает директиву #define , он заменяет любое..

Современный C++ в появлении кода: Day23
Это двадцать третий день Пришествия Кода . Сегодня мы будем искать самый дешевый способ перетасовки амфипод. Как всегда, пожалуйста, попробуйте решить проблему, прежде чем искать решение. Для всех статей в этой серии ознакомьтесь с этим списком . День23 Сегодня наша задача — найти самый дешевый способ переупорядочить расположение элементов в «комнатах» с помощью соединительного «коридора». Стоимость переезда различается в зависимости от типа элемента, у нас: Янтарные (A)..