Your trial period has ended!
For full access to functionality, please pay for a premium subscription
CP
Уютное сообщество С++ разработчиков
https://t.me/cppturbo
Channel age
Created
Language
Russian
-
ER (week)
-
ERR (week)

Изучаем C++. Ресурсы, обучения, задачи, шпаргалки. Вопросы с собеседований по C++ и ответы на них. Задачи и тесты по C++ для тренировки и обучения. По рекламе: @anothertechrock

Messages Statistics
Reposts and citations
Publication networks
Satellites
Contacts
History
Top categories
Main categories of messages will appear here.
Top mentions
The most frequent mentions of people, organizations and places appear here.
Found 40 results
Пять популярных
мифов о С++

#айти #обучение
#программирование
04/18/2025, 18:18
t.me/cppturbo/289
⚙️Уже работаете с Rust, но хотите эффективно интегрировать его с другими языками? Или интересуетесь, как устроен процесс сборки и линковки в этом языке?

🗓На открытом вебинаре 24 апреля в 20:00 мск мы подробно разберем, как собирать и линковать библиотеки в Rust, как использовать Rust-библиотеки в других языках, а также реализуем Си ABI (Application Binary Interface). Вы получите знания, которые помогут вам повысить производительность ваших проектов и интегрировать Rust в существующие решения.

👨‍💻Урок будет полезен всем, кто хочет углубить свои знания в Rust, повысить квалификацию и навыки работы с библиотеками и системами. Вы сможете применять полученные знания в реальных проектах.

👉Присоединяйтесь к открытому вебинару и получите скидку на большое обуче
ние «Rust Developer. Professional»

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
04/18/2025, 14:10
t.me/cppturbo/288
В чем разница между std::atomic::load() и std::atomic::exchange()?

👍 load() атомарно читает значение, exchange() атомарно заменяет и возвращает старое
🤔 load() блокирует потоки, exchange() не блокирует
👏 load() работает быстрее, exchange() безопаснее
🌚 load() не имеет побочных эффектов, exchange() изменяет все копии объекта
04/16/2025, 11:51
t.me/cppturbo/287
ООП в С++ за минуту

#айти
#программирование
#обучение
04/14/2025, 12:01
t.me/cppturbo/286
Подборка книг по C++ на русском языке.
Скачивайте и читайте.

Думай как программист. C++ версия
Автор: Антон Спрол

Решение задач на современном C++
Автор: Мариус Бансила

Qt 5.10. Профессиональное программирование на C++
Автор: Шлее М.

Язык программирования С++. Краткий курс
Автор: Страуструп Бьярне

C++17 STL. Стандартная библиотека шаблонов
Автор: Галовиц Яцек

Реактивное программирование на C++
Автор: Питер Абрахам

Самоучитель "Уроки по C++"
Автор: Ravesli

Параллельное программирование на современном языке C++
Автор: В.Ю.Винник

Идиомы и паттерны проектирования в современном С++
Автор: Федор Г. Пикус

C++ для инженерных и научных расчетов
Автор: Питер Готтшлинг

Пишите ваши предложения по книгам - мы найдем и разместим.
04/10/2025, 19:41
t.me/cppturbo/285
📈Плоские контейнеры и C++: как оптимизировать производительность и память

Пытаетесь сделать код быстрее и экономичнее? Время научиться использовать плоские контейнеры в C++! На открытом уроке 15 апреля в 20:00 мск мы разберемся, что такое плоские контейнеры!

Что вас ждет:
- Описание плоских контейнеров в C++: какие они бывают и чем отличаются от стандартных.
- Реальные примеры, когда и почему плоские контейнеры — это ваша идеальная пара для эффективной работы с данными.
- Практическая часть: сравнение с традиционными контейнерами и примеры применения на реальных задачах.

Кому будет полезно:
• Программистам C++, работающим с большими объемами данных.
• Разработчикам высокопроизводительных приложений и игр.
• Инженерам, которым нужно минимизировать использование памяти и повысить эффективность.

👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C++ Developer. Professional»: https://otus.pw/ZJky/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
04/10/2025, 15:35
t.me/cppturbo/284
С чего начать
изучение языков
программирования?

#айти
#программирование
#обучение
04/07/2025, 20:33
t.me/cppturbo/282
Пройдите вступительный тест и получите доступ к бесплатным урокам курса «C# ASP.NET Core разработчик».

👉 Пройти тест

Хотите стать фуллстэк, увеличить доход и выполнять более интересные и важные задачи?

За 6 месяцев обучения вы научитесь:

✔️ Самостоятельно реализовывать веб-приложения на ASP.Net Core
✔️ Создавать высоконагруженные API на GraphQL, gRPC и SignalR Core
✔️ Освоите JavaScript, познакомитесь с ReactJS и научитесь интегрировать его с ASP.NET Core
✔️ Покрывать веб-приложения интеграционными и нагрузочными тестами
✔️ Разворачивать веб-приложения в Docker-контейнерах и в облаках
✔️ Настраивать CI/CD и использовать Kubernetes
✔️ Реализовывать микросервисную архитектуру и использовать RabbitMQ
✔️ Управлять безопасностью и защищаться от хакерских атак

Наш курс включает в себя все необходимые знания и практические задания, чтобы вы стали настоящим профессионалом.

❗️После успешного прохождения теста вам будут доступны уроки на лендинге курса, и скидка на обучение «C# ASP.NET Core разработчик».

� Пройти тест

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
04/07/2025, 16:25
t.me/cppturbo/281
C++ на старте
изучения языков
программирования

#айти
#программирование
#обучение
04/04/2025, 16:56
t.me/cppturbo/280
�Хотите быстро научиться строить интерактивные интерфейсы на C#?

Присоединяйтесь к открытому уроку 8 апреля в 20:00 мск, где мы покажем, как сделать ваш код живым и динамичным!

📖Вы научитесь использовать класс System.Console для создания простых, но интересных программ с текстовыми интерфейсами. Например, вы напишете свою версию игры "Крестики-нолики" прямо в консоли. Это легко и увлекательно!

🔥С этим знанием вы сможете не просто выводить данные, а создавать интерактивные приложения, которые смогут реагировать на действия пользователя.

➡️ Зарегистрируйтесь на вебинар и получите скидку по промокоду SHARP_SPEC_4 на большое обучение «C# Developer»

Промокод действителен до 30.04.2025

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
04/04/2025, 12:50
t.me/cppturbo/279
🤔 Какие контейнеры позволяют вставку в начало контейнера?

Контейнеры, такие как list и deque, позволяют вставку в начало за O(1). В vector вставка в начало возможна, но требует O(n), так как все элементы сдвигаются вправо.

Ставь 👍 если знал ответ, 🔥 если нет
04/03/2025, 10:58
t.me/cppturbo/278
🤔 Чем отличается выброс исключения от "аборта"?

Исключение позволяет обработать ошибку и продолжить выполнение программы. Абортивное завершение (abort) немедленно завершает процесс без возможности восстановления.

Ставь 👍 если знал ответ, 🔥 если нет
03/25/2025, 08:39
t.me/cppturbo/277
⚡️Асинхронность без сложных потоков? В C++20 это возможно. Корутины позволяют выполнять задачи параллельно без создания лишних потоков, экономя ресурсы и упрощая код.

На открытом вебинаре 27 марта в 20:00 мск разберём, как co_await и co_yield работают в современных C++-проектах, где применяются в реальных задачах и почему это важно для высоконагруженных систем. Разберём практические примеры из сетевого программирования и обработки данных.

Освойте новую парадигму асинхронности, избавьтесь от проблем с потоками и сделайте свой код проще и быстрее. Вы научитесь внедрять корутины в свои проекты, разберётесь в новшествах C++20/23 и сможете использовать их в продакшене.

👉Регистрируйтесь и получите скидку на большое обучение «C++ Developer. Professional»: https://otus.pw/Uog9/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
03/24/2025, 18:21
t.me/cppturbo/276
🤔 Как работает map и unordered_map?

map использует структуру красно-черного дерева, поддерживая упорядоченность элементов, тогда как unordered_map применяет хеш-таблицу, распределяя элементы по бакетам на основе их хеша.

Ставь 👍 если знал ответ, 🔥 если нет
03/23/2025, 10:57
t.me/cppturbo/275
Методы программирования в
задачах и примерах на C/C++

Авторы: А. А. Корнев,
В. Д. Валединский
Дата выхода: 2023

#cpp #ru

Скачать книгу
03/21/2025, 08:35
t.me/cppturbo/274
☸️Хотите узнать, как деплоить ASP.NET-приложения в Kubernetes?

📅26 марта в 20:00 мск на открытом вебинаре мы разберем:

– PersistentVolume
– ConfigMap
– Secret
– Развернем БД в кластере и обсудим, почему секреты не такие уж секретные.

С Kubernetes ваши ASP.NET Core-приложения станут масштабируемыми и гибкими.

➡️ Регистрируйтесь на вебинар и получите скидку на курс «C# ASP.NET Core-разработчик»

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
03/20/2025, 18:45
t.me/cppturbo/273
🤔 Какая сложность работы с map и unordered_map?

В map все основные операции выполняются за O(log n), так как используется сбалансированное дерево. В unordered_map вставка, удаление и поиск обычно выполняются за O(1), но могут ухудшаться до O(n), если произойдет много коллизий.

Ставь 👍 если знал ответ, 🔥 если нет
03/20/2025, 10:58
t.me/cppturbo/272
А за сколько вы выучили С++?
03/17/2025, 22:37
t.me/cppturbo/271
Modern C++ for Absolute Beginners

Автор: Slobodan Dmitrović
Год издания: 2023

#cpp #en #2O23

Скачать книгу
03/17/2025, 22:37
t.me/cppturbo/270
Как думаете, кто и когда отправит С++ на покой?
Или он будет жить вечно?
03/07/2025, 20:02
t.me/cppturbo/269
Программирование на
языке C++. Практический курс

Авторы: Огнева М., Кудрина Е.
Год издания: 2022

#cpp #ru

Скачать книгу
03/06/2025, 21:09
t.me/cppturbo/268
🚀Открыта вакансия C++ Software Engineer в YADRO: получите оффер за 3 дня

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

YADRO запускает SPRINT OFFER для инженеров-разработчиков C++, готовых прокачаться в команде Telecom Platform. Здесь вы будете:

✔️ Разрабатывать платформенные решения для мобильных сетей LTE/GSM
✔️ Разрабатывать компоненты телеком-платформы в технологическом стеке С++/Linux
✔️ Участвовать в проектировании и развитии архитектуры телеком-платформы

Как попасть в команду?

1️⃣ Оставить заявку до 9 марта
2️⃣ Пройти скрининг и техническое интервью
3️⃣ Получить оффер всего за 3 дня

📍 Формат работы: офис, гибрид или удалёнка (Москва, СПб, Нижний Новгород, Екатеринбург, Минск).

💡 В команде — инженеры с опытом 10–25 лет, у которых есть чему научиться!

Готовы к карьерному рывку?

Подавайте заявку сейчас — по ссылке.
03/06/2025, 17:04
t.me/cppturbo/267
А вам когда-нибудь снился С++ в кошмарах?)
02/28/2025, 13:19
t.me/cppturbo/263
Книги по C++.
Скачивайте и читайте.

Beginning C++ Compilers
Автор: Ademi B. Ospanova

Modern C++ for Absolute Beginners
Автор: Slobodan Dmitrović

C++20: Get the Details
Автор: Grimm Rainer

Starting Out with C++ from Control Structures to Objects
Автор: Tony Gaddis

Software Architecture with C++
Автор: Adrian Ostrowski

Expert C++
Автор: Araks Tigranyan

Современный C++ безопасное использование
Автор: Джон Лакос

Методы программирования в задачах и примерах на C/C++
Автор: А. А. Корнев

Программирование на языке C++. Практический курс
Автор: Огнева М.

Самоучитель "Уроки по C++"
Автор: Ravesli

#cpp #подборка
02/27/2025, 18:04
t.me/cppturbo/262
📚 Основное определение:
Поинтеры — это переменные, которые хранят адреса других переменных в памяти. Они активно используются в системном программировании, разработке встраиваемых систем и при работе с динамической памятью. Главная особенность — прямой доступ к памяти и эффективная работа с данными.

🔍 Ключевые концепции:

1️⃣ Объявление поинтера: int *ptr — создает указатель на целое число
2️⃣ Получение адреса: &variable — оператор для получения адреса переменной
3️⃣ Разыменование: *ptr — доступ к значению по адресу в указателе
4️⃣ Арифметика указателей: ptr++ перемещает указатель на следующий элемент
5️⃣ Связь с массивами: array[i] эквивалентно *(array + i)
6️⃣ Динамическая память: malloc() и free() для управления памятью

💻 Практический пример:

int array[] = {1, 2, 3, 4, 5};
int *ptr = array;

for(int i = 0; i < 5; i++) {
printf(«%d «, *ptr); ptr++;
}
// Вывод: 1 2 3 4 5

📎 Дополнительные ресурсы:

👉 Полное руководство по указателя
м в C
02/25/2025, 13:24
t.me/cppturbo/261
🎲 Тест «Тест по C++»
Пройдите тестирование, проверьте свои знания с помощью онлайн тест-викторины C++, подготовьтесь к экзаменам по C++.
🖊 15 вопросов · ⏱ 30 сек
02/24/2025, 13:34
t.me/cppturbo/260
Считаем единички
#задачки

Меня всегда забавляли задачки на бинарное представление чисел. Всегда можно найти занимательные и новые для себя подходы.

Вроде бы простая и популярная задача: посчитать количество единиц в битовом представлении числа. Уверен, что большинство из вас решали эту задачу.

Однако популярный подход - не самый эффективный, элегантный и интересный.

Благо существует множество непопулярных, но очень интересных решений! О них я расскажу в завтра в ответном посте.

А пока предлагаю вам порешать эту задачку. Если вы знаете какие-то нетривиальные решения, то расскажите о них в комментах тоже.

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

int count_ones(unsigned num) {
// Here your code
}

Challenge yourself. Stay cool.
02/24/2025, 13:18
t.me/cppturbo/259
А как вы пришли к программированию на плюсах?
Как это изменило вашу жизнь?
02/23/2025, 13:22
t.me/cppturbo/258
Сортировка массива на C++ за 30 секунд!
02/20/2025, 21:09
t.me/cppturbo/257
👩‍💻 Вспоминаем методы для контейнеров!

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

Уютное сообщество С++ разработчик
ов | #шпора
02/20/2025, 14:43
t.me/cppturbo/256
Самоучитель
"Уроки по C++"

Автор: Ravesli
Год издания: 2022

#cpp #ru

Скачать книгу
02/19/2025, 13:33
t.me/cppturbo/251
Потокобезопасный интерфейс
#новичкам

Не для всех очевидная новость: не всегда можно превратить класс из небезопасного в потокобезопасный, просто по уши обложившись лок гардами. Да, вызов конкретного метода будет безопасен. Но это не значит, что классом безопасно пользоваться.

Возьмем максимально простую реализацию самой простой очереди:

struct Queue {
void push(int value) {
storage.push_back(value);
}
void pop() {
storage.pop_front();
}
bool empty() {
return storage.empty();
}
int& front() {
return storage.front();
}
private:
std::deque storage;
};

Она конечно потокоНЕбезопасная. То есть ей можно адекватно пользоваться только в рамках одного потока.

Как может выглядеть код простого консьюмера этой очереди?

while(condition)
if (!queue.empty()) {
auto & elem = queue.front();
process_elem(elem);
queue.pop();
}

И вот мы захотели разделить обязанности производителя чисел и их потребителя между разными потокам. Значит, нам надо как-то защищать очередь от многопоточных неприятностей.

Бабахаем везде лок гард на один мьютекс и дело в шляпе!

struct Queue {
void push(int value) {
std::lock_guard lg{m};
storage.push_back(value);
}
void pop() {
std::lock_guard lg{m};
storage.pop_front();
}
bool empty() {
std::lock_guard lg{m};
return storage.empty();
}
int& front() {
std::lock_guard lg{m};
return storage.front();
}
private:
std::deque storage;
std::mutex m;
};

Все доступы к очереди защищены. Но спасло ли реально это нас?

Вернемся к коду консюмера:

while(true)
if (!queue.empty()) {
auto & elem = queue.front();
process_elem(elem);
queue.pop();
}


А вдруг у нас появится еще один консюмер? Тогда в первом из них мы можем войти условие, а в это время второй достанет последний элемент. Получается, что мы получим доступ к неинициализированной памяти в методе front.

То есть по факту в многопоточном приложении полученный стейт сущности сразу же утрачивает свою актуальность.

Что делать? Не только сами методы класса должны быть потокобезопасными. Но еще и комбинации использования этих методов тоже должны обладать таким свойством. И с данным интерфейсом это сделать просто невозможно.

Если стейт утрачивает актуальность, то мы вообще не должны давать возможность приложению получать стейт очереди. Нам нужны только команды управления. То есть push и pop.

struct ThreadSafeQueue {
void push(int value) {
std::lock_guard lg{m};
storage.push_back(value);
}
std::optional pop() {
std::lock_guard lg{m};
if (!storage.empty()) {
int elem = storage.front();
storage.pop_front();
return elem;
}
return nullopt;
}
private:
std::deque storage;
std::mutex m;
};

Внутри метода pop мы можем использовать проверять и получать стейт очереди, так как мы оградились локом. Возвращаем из него std::optional, который будет хранить фронтальный элемент, если очередь была непуста. В обратном случае он будет пуст.

Теперь консюмер выглядит так:

while(true) {
auto elem = queue.pop();
if (elem)
process_elem(elem.value());
}

Можно конечно было использовать кондвары и прочее. Но я хотел сфокусироваться именно на интерфейсе. Теперь реализация просто не позволяет получать пользователю потенциально неактульные данные.

Stay safe. Stay cool.

#concurrency #design #goodpractice
02/18/2025, 13:14
t.me/cppturbo/250
➕ Игра на C++ в консоли ➕
02/17/2025, 21:04
t.me/cppturbo/249
Search results are limited to 100 messages.
Some features are available to premium users only.
You need to buy subscription to use them.
Filter
Message type
Similar message chronology:
Newest first
Similar messages not found
Messages
Find similar avatars
Channels 0
High
Title
Subscribers
No results match your search criteria