Senior C++ Developer
12.9K subscribers
1.29K photos
3 videos
587 links
№ 4931128893
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr
Download Telegram
Алгоритм upper_bound

Он возвращает итератор, указывающий на первый элемент в диапазоне [first, last), который больше значения, или last, если такой элемент не найден.

Элементы в диапазоне должны быть уже отсортированы или, по крайней мере, разделены по значению val.
Алгоритм stable_partition

Упорядочивает последовательность, определенную параметрами start и end, так, чтобы все элементы, для которых предикат возвращал true, предшествовали тем, для которых предикат возвращает false. Разметка стабильная. Это означает, что относительный порядок последовательности сохраняется.
Как проигрывать музыку с помощью C++

Полную инструкцию по работе с аудиозаписями на C++ можно найти здесь.
Узнаем сколько лет человеку по дате его рождения

Для расчета возраста человека по дате его рождения в C++ можно использовать следующий код

В этом коде мы запрашиваем у пользователя его дату рождения, а затем получаем текущую дату с помощью функции time. Затем мы используем структуру tm для извлечения года, месяца и дня из текущей даты и вычисляем количество полных лет с помощью формулы now->tm_year + 1900 - year. Если текущий месяц и день меньше, чем месяц и день рождения, мы уменьшаем возраст на 1. Наконец, мы выводим результат на экран.
#вопросы_с_собеседований
Бывает такое, что оператор new не выделяет память?

Ответ:
Да, бывает, когда new передаётся указатель на уже выделенную память (например, с помощью malloc). Это называется placement new. И оператор new без изменения возвращает второй параметр - указатель (void* operator new(std::size_t, void*)). Это используется для создания объектов в выделенном "хранилище" или после malloc.

Важно! В этом случае деструктор нужно вызывать самостоятельно!
«Прозрачный промоушн выгоден и разработчику, и его тимлиду». Нюансы карьеры разработчика на С++

https://habr.com/ru/companies/kaspersky/articles/729620/
Алгоритм lower_bound

Возвращает итератор, указывающий на первую позицию в отсортированной последовательности, ограниченной диапазоном [first, last), в которую можно вставить значение value, не нарушая упорядоченности.
Оператор присваивания ( = ), строго говоря, является бинарным оператором. Его объявление идентично объявлению любого другого бинарного оператора со следующими исключениями:

☑️ Он должен быть нестатической функцией-членом.

☑️ Он не наследуется производными классами.

☑️ Компилятор может создать функцию operator = по умолчанию для типов классов, если она не существует.

В примере показано, как объявить оператор присваивания.
std::variant

Это фича C++17, обеспечивающая типобезопасное объединение, позволяющее хранить и манипулировать значениями разных типов в одном объекте. Она является частью стандартной библиотеки C++ и определена в заголовке <variant>.

Шаблонный класс std::variant похож на упрощенную версию union, но с дополнительной безопасностью типов и поддержкой различных операций.

Основными функциями std::variant являются index(), valueless_by_exception(), operator=, emplace.

В этом примере мы создаем объект var, который может содержать значения типов int, float или std::string. Мы присваиваем var различные значения и получаем их с помощью std::get.

Однако если мы попытаемся получить значение, используя неправильный тип (например, std::get<int>(var), когда вариант содержит std::string), это вызовет исключение std::bad_variant_access.
Удаление элементов

Для удаления элементов из контейнера list могут применяться следующие функции:

clear(p): удаляет все элементы

pop_back(): удаляет последний элемент

pop_front(): удаляет первый элемент

erase(p): удаляет элемент, на который указывает итератор p. Возвращает итератор на элемент, следующий после удаленного, или на конец контейнера, если удален последний элемент

erase(begin, end): удаляет элементы из диапазона, на начало и конец которого указывают итераторы begin и end. Возвращает итератор на элемент, следующий после последнего удаленного, или на конец контейнера, если удален последний элемент

Применение всех функций представлено на картинке.
Wt

Wt — это фреймворк веб-приложений, который позволяет разработчикам создавать веб-приложения с использованием C++. Его встроенные виджеты и компоненты позволяют легко создавать сложные веб-приложения с минимальными усилиями.

Кроме того, Wt предоставляет модель событий на стороне сервера, которая позволяет разработчикам писать веб-приложения, обладающие высокой отзывчивостью и интерактивностью.

https://www.webtoolkit.eu/wt
Алгоритм search

Ищет последовательность [first1, last1) для первого вхождения подпоследовательности, определенной [first2, last2), и возвращает итератор в свой первый элемент вхождения, или last1, если вхождения не найдены.
#вопросы_с_собеседований по Си
Что такое void указатель? Можно ли разыменовать указатель void, не зная его типа?

void указатель — это указатель, который можно использовать для указания на любые данные любого произвольного типа. Указатель void может быть разыменован только после явного приведения. Например:
int a = 5;
void *b = &a;
printf(“%d\n”, *((int*)b));
Почему я программирую на С/C++ (язык для профессионалов!)

Смотреть видео
Как в С++ обрабатывать ошибки в конструкторах без исключений?

Самый очевидный способ обработки ошибок — это возврат значений. Но конструкторы не возвращают значения, поэтому так поступить нельзя. Это и было одной из причин, по которой исключения появились в С++.

Смотреть статью
➡️ Библиотека PEGTL

PEGTL (Parsing Expression Grammar Template Library) — это библиотека для создания синтаксических анализаторов (парсеров) на C++. Она предоставляет мощные инструменты для определения грамматик и разбора текстов, что делает ее отличным выбором для создания языков программирования и обработки текстов.

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

🔗 Ссылочка на доку
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Библиотека SQLiteCpp

SQLiteCpp — это тонкая обертка вокруг SQLite, одной из самых популярных легковесных реляционных баз данных. Библиотека предоставляет удобный и безопасный интерфейс для работы с SQLite в C++, облегчая взаимодействие с базами данных.

Если вам нужно встроить простую, но мощную базу данных в ваше C++ приложение, SQLiteCpp — это то, что вам нужно.

🔗 Ссылочка на доку
Please open Telegram to view this post
VIEW IN TELEGRAM