seniorcpp | Unsorted

Telegram-канал seniorcpp - Senior C++ Developer

13626

Изучаем C++. По вопросам сотрудничества: @adv_and_pr

Subscribe to a channel

Senior C++ Developer

Может ли C++ быть в 10 раз проще и безопаснее? - Херб Саттер - CppCon 2022

https://youtu.be/ELeZAKCN4tY

Читать полностью…

Senior C++ Developer

CRYENGINE — мощная платформа для разработки игр в реальном времени на С++, созданная Crytek.

https://www.cryengine.com/

Читать полностью…

Senior C++ Developer

Узнаем факториал числа

Решение приведено на картинке.

Читать полностью…

Senior C++ Developer

Метод find_last_not_of

Ищет в данной строке последнее появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.

Читать полностью…

Senior C++ Developer

Получить текущее время и дату в C++

С С++11 стандартным способом является использование библиотеки chrono. Можно получить текущее время при помощи std::chrono::system_clock::now() от <chrono.h> и преобразовать его в std::time_t тип.

Затем преобразовать std::time_t на местное календарное время std::ctime в Www Mmm dd hh:mm:ss yyyy формате, как показано на картинке.

Читать полностью…

Senior C++ Developer

KPHP спустя 2 года.

https://habr.com/ru/company/vk/blog/698294/

Читать полностью…

Senior C++ Developer

#вопросы_с_собеседований
Что такое инкапсуляция, наследование, полиморфизм?

Инкапсуляция
— это скрытие внутренней реализации от других компонентов (например, использование get-, set- методов).

Наследование — главное преимущество ООП. Выведенный класс (наследник) может наследовать свойства, методы и интерфейс другого класса, который называют базовым, а так же добавлять свои черты, характерные только для него.

Полиморфизм (шаблоны — статический полиморфизм, виртуальные функции, перегрузка функций и операторов — динамический полиморфизм) — повторное использование кода, одно и тоже имя класса или функции для единого класса действий. Вызов конкретной версии функции зависит от объекта, который передают в качества параметра.

Читать полностью…

Senior C++ Developer

Удаление элементов

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

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

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

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

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

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

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

Читать полностью…

Senior C++ Developer

Unreal Engine 5 — быстрое начало работы с движком для создания игр.

https://youtu.be/LdJAp1RS04g

Читать полностью…

Senior C++ Developer

Функция isalpha()

Функция isalpha() в С++ проверяет, является ли данный символ буквой или нет.

Синтаксис:
isalpha(int ch).

Возвращаемое значение:
Функция возвращает ненулевое значение, если ch – буква и ноль, если ch не буква.

Читать полностью…

Senior C++ Developer

Juce

Juce — кроссплатформенный фреймворк, предназначенный для создания приложений и плагинов на языке C++.

Документации по Juce много, но не на русском языке. Поэтому можно скачать книгу «Программирование на C++ с JUCE 4.2.x: Создание кроссплатформенных мультимедийных приложений с использованием библиотеки JUCE на простых примерах».

Juce больше популярен среди разработчиков аудио — ПО благодаря набору интерфейсов-оболочек для построения аудио плагинов.

https://juce.com/

Читать полностью…

Senior C++ Developer

Для чего используется вызов throw без аргументов?

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

Читать полностью…

Senior C++ Developer

Bitset

Bitset — это контейнер в C++ Standard Library для работы с данными на битовом уровне.

Набор битов хранит биты (элементы только с двумя возможными значениями: 0 или 1). Тем не менее, мы можем получить часть строки, предоставив позиции конструктору bitset (позиции относятся к позиции строки слева направо).

Подробнее можно почитать здесь.

Читать полностью…

Senior C++ Developer

Метод crbegin

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

Подробнее можно почитать здесь.

Читать полностью…

Senior C++ Developer

Создание игры Pac-Man на C++.

https://youtu.be/Udm2P7hW7oo

Читать полностью…

Senior C++ Developer

gcc 13 будет иметь <format>

https://gcc.gnu.org/pipermail/libstdc++/2022-November/054991.html

Читать полностью…

Senior C++ Developer

Обзор C++ библиотек глубокого обучения Apache.SINGA, tiny-dnn, OpenNN

Смотреть статью

Читать полностью…

Senior C++ Developer

📌 Создание игры "Змейка" на С++ (видеокурс)

Как создать игру на чистом C++? В этом видеокурсе вы сделаете простую игру под названием Змейка на чистом C++. Создание игр на C++ — несложное дело, главное — понимание самих алгоритмов.

1. Создание карты
2. Расположение вещей
3. Логика игры

Читать полностью…

Senior C++ Developer

Метод map::max_size()

map::max_size() — это встроенная функция C++ STL, которая возвращает максимальное количество элементов, которые может содержать контейнер map.

Читать полностью…

Senior C++ Developer

Змейка на С++: создаем первую игру. ЧАСТЬ 1

Смотреть статью

Читать полностью…

Senior C++ Developer

Можно ли в C++ умножать или делить целое значение на степени двойки, не используя операций "*" или "/"?

Это можно делать в любом языке, где есть побитовый сдвиг. Умножению значения x на 2, например, соответствует операция x << 1, а делению y на 4 - действие y >> 4.

Читать полностью…

Senior C++ Developer

Руководство по CMake для разработчиков C++ библиотек.

https://habr.com/ru/post/683204/

Читать полностью…

Senior C++ Developer

#вопросы_с_собеседований
Сколько в памяти занимает произвольная структура?

Ответ: sizeof всех членов + остаток для выравнивания (по умолчанию выравнивание 4 байта) + sizeof указателя на vtable (если есть виртуальные функции) + указатели на классы предков, от которых было сделано виртуальное наследование (размер указателя * количество классов).

Читать полностью…

Senior C++ Developer

Токенизация строки

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

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

Читать полностью…

Senior C++ Developer

SDL

Простая, удобная, кроссплатформенная библиотека как для создания 2D игр, так и для пользовательских приложений, имеются инструменты для профессиональной работы со звуком.

https://www.libsdl.org/

Читать полностью…

Senior C++ Developer

#вопросы_с_собеседований
Какие специальные функции-члены может генерировать сам компилятор? Напишите их сигнатуру?

Ответ:
Компилятор может сам генерировать шесть функций.

• Конструктор по умолчанию;
    Object();
• деструктор;
    ~Object();
• копирующий конструктор;
    Object(const Object& oth);
• оператор копирующего присваивания;
     Object& operator=(const Object& oth);
• перемещающий конструктор;
    Object(Object&& oth);
• оператор перемещающего присваивания;
    Object& operator=(Object&& oth);

Читать полностью…

Senior C++ Developer

#вопросы_с_собеседований
Что лучше: const или define?

Ответ:
define - это директива препроцессора, которая не учитывает ни типов, ни областей видимости. Препроцессор вставляет значение везде, где оно используется и создается множество копий 3.14159265359 в объектном коде, константа никогда не порождает больше одной копии этого значения. define трудно отлаживать, потому что у него нет имени, только магическое число, нельзя взять адрес или создать ссылку на это значение.

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

Определенно, лучше использовать const, а не define.

Читать полностью…

Senior C++ Developer

Метод map::emplace_hint

Аналогичен методу emplace(), но дополнительно позволяет подсказать позицию вставки с помощью итератора. Метод возвращает итератор на вставленный элемент или на существующий элемент (вставить элемент с одинаковым ключом нельзя).

Читать полностью…

Senior C++ Developer

Как работать с атомарными типами данных в C++

https://habr.com/ru/company/ncloudtech/blog/694284/

Читать полностью…

Senior C++ Developer

Структура представлена в виде массива f, в котором f[i] – сумма всех элементов от F[i] до i. Функция F(x) связана с битовым представлением аргумента. Вкратце можно описать так: F(x) заменяет группу единичных битов, находящихся в конце числа (младших) на нули. Если x заканчивается на нулевой бит, то F(x) = x. В битовых операциях F(x) задаётся так: F(x) = x & (x + 1).

Нам понадобятся три функции: прибавление x к элементу с индексом i, получение суммы дерева от 0до xи получение суммы на [a..b].

Читать полностью…
Subscribe to a channel