Библиотека C/C++ разработчика
الذهاب إلى القناة على Telegram
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
إظهار المزيد7 322
المشتركون
لا توجد بيانات24 ساعات
+47 أيام
+1330 أيام
أرشيف المشاركات
Я сделал C++ версию функции Python print()
Мне нравится функция Python
print(obj...), поскольку она может выводить переменные любого типа: числа, строки, массивы и объекты, а также полезна для отладки.
В последнее время я занимаюсь соревновательным программированием, но эта функция помогает мне отлаживать и там.
https://dev.to/philip82148/i-made-a-c-version-of-consolelog-o88
#cpp #programming
👉 @cpp_lib50 веб сайтов по изучению C/C++
В этой статье я расскажу о 50 сайтах, которые, по моему мнению, должен знать и добавить в закладки каждый разработчик на Си или Си++. В этом списке представлены прямые ссылки на исходные коды программ вместе с их описанием.
https://www.mycplus.com/featured-articles/50-c-cpp-source-code-websites/
#cpp #programming
👉 @cpp_lib
Repost from НГУ|NSU
🎓👨💻 Магистратура ФИТ НГУ «Интернет вещей»: готовим IoT-разработчиков с широким технологическим стэком, способных решать задачи на стыке науки и прорывных IT-технологий для разных сфер жизни.
Магистерская программа Новосибирского госуниверситета направлена на подготовку IoT-инженеров, разрабатывающих низкоуровневые решения для встроенных управляющих и сенсорных систем с учетом их специфики и ресурсных ограничений. 🤖 Выпускники программы получают комплексные знания, благодаря чему могут решать широкий спектр IoT-задач для любых сфер жизни – от медицины и энергетики до кибербезопасности и автомобилестроения.
✨ Программа «Интернет вещей» – это современные технологии, актуальные навыки и мощный старт IT-карьеры:
✅ Стажировки в высокотехнологичных компаниях и решение реальных задач для технологических партнеров НГУ.
✅ Участие в прорывных проектах, таких как Smart City, Smart Hospital, СКИФ и других проектах в сфере цифровой медицины, биологии, сельского хозяйства, автомобилестроения.
✅ Практика на передовом оборудовании с самыми современными технологиями.
✅ Гибкий график, позволяющий совмещать учебу с работой.
✅ Много бюджетных мест.
✅ Преподаватели-эксперты — реальные практики из ведущих компаний-высокотехов и научно-исследовательских центров.
✅ Современный кампус в Академгородке с новыми общежитиями, удобной инфраструктурой, ручными белками и чистым лесным воздухом.
👀 Для кого?
Программа подойдет выпускникам бакалавриата и специалитета в области IT, математики, физики и смежных инженерных направлений.
❗️ Успей подать заявку до 5 августа!
👉 Подробнее о программе: https://education.nsu.ru/promo/iot/
Идея по улучшению многопоточного кода
Александр Корнилов
Александр описывает подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации. Демонстрация идеи проходит на живых примерах кода на современном C++.
источник
#cpp #programming
👉 @cpp_lib
Input parser - библиотека для парсинга командной строки
https://github.com/gianluisdiana/InputParser
#cpp #programming
👉 @cpp_lib
Идеальная передача и универсальные ссылки в C++
https://eli.thegreenplace.net/2014/perfect-forwarding-and-universal-references-in-c
#cpp #programming
👉 @cpp_lib
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Excel лайфхак📌
https://t.me/Excel_lifehack
+9
👩💻 Шпаргалка по C++
Шпаргалка фокусируется на языке, а не стандартной библиотеке, и учитывает особенности C++11/C++14
#cpp #programming
👉 @cpp_lib
⚡️ Учись программировать на Solidity и создавать инновационные блокчейн-решения!
Пройди короткий тест и проверь, можешь ли ты осилить программирование на Solidity.
Ответишь успешно на все вопросы — сможешь попасть на продвинутый курс "Solidity Developer" от OTUS по специальной цене!
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cxshlM
🎁 Бонусом за прохождение теста, получишь бесплатный доступ к записям открытых вебинаров курса уже сейчас!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Краткое сравнение популярных функций измерения времени
Решил обновить свою старую крохотную библиотечку для тайминга кода. Измерение коротких временнЫх интервалов в ней выполнялось с помощью: инструкции RDTSC при компиляции MSC для x86 и gettimeofday при сборке GCC под Linux. IMHO, на сегодняшний день это не самые правильные методы, и захотелось объективно выбрать что-то более точное и лёгкое. Для этого были измерены несколько параметров наиболее популярных функций измерения времени. Результатами этих измерений и делюсь с вами (вдруг кому тоже интересно).
https://habr.com/ru/articles/818965/
#cpp #programming
👉 @cpp_lib
Что такое Uniform initialization? Aggregate initialization?
Uniform initialization, введенная в C++11, позволяет использовать единый синтаксис для инициализации переменных и объектов, начиная от примитивных типов до агрегатов¹. Другими словами, она вводит инициализацию скобками, которая использует фигурные скобки {} для заключения значений инициализатора. Синтаксис выглядит следующим образом:
type var_name {arg1, arg2, ....arg n}.
Aggregate initialization - это форма инициализации списком для массивов или типов класса (часто структур или объединений), которые имеют: нет приватных или защищенных членов, нет пользовательских конструкторов, кроме явно заданных или удаленных конструкторов . Это позволяет напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми.
Например, если у вас есть структура с несколькими членами:
struct Employee {
int id {};
int age {};
double wage {};
};
Когда мы определяем объект с типом структуры, нам нужен способ инициализации нескольких членов во время инициализации:
Employee joe; // как мы инициализируем joe.id, joe.age и joe.wage?
Агрегаты используют форму инициализации, называемую агрегатной инициализацией, которая позволяет нам напрямую инициализировать элементы агрегатов. Для этого мы предоставляем список инициализаторов в качестве инициализатора, который представляет собой список значений, разделенных запятыми. Так же как обычные переменные могут быть скопированы, напрямую инициализированы или списком инициализированы, есть 3 формы агрегатной инициализации.
#cpp #programming
👉 @cpp_lib📕Pro Cryptography and Cryptanalysis with C++23: Creating and Programming Advanced Algorithms, 2nd Edition
Автор: Marius Iulian Mihailescu (2023)
Сформировать прочные навыки написания криптографических алгоритмов и схем/модулей безопасности с использованием языка C++23 и его новых возможностей. Эта книга научит вас правильным методам написания продвинутых криптографических алгоритмов, таких как алгоритмы криптографии на основе эллиптических кривых, криптографии на основе решетки, шифрования с поиском и гомоморфного шифрования. Вы также рассмотрите внутренние криптографические механизмы и узнаете общие способы реализации и правильного использования алгоритмов на практике.
#cpp #programming
👉 @cpp_lib
🟡 Как прокачать свои скиллы в разработке на С++?
Прийти на бесплатный практический урок «Условные переменные в С++» от OTUS, где мы разберем:
— что такое std::condition_variable и какие задачи он решает;
— типовые ошибки при его использовании;
— что такое spurious wakeup.
А также напишем несколько concurrency-примитивов на основе condition_variable.
🙋♂️Спикер — ведущий программист с большим международным опытом.
⏰ Встречаемся 11 июня в 20:00 мск в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Go-like каналы на C++
Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылаться на "Go-style channels", т.к. на мой взгляд, важная особенность каналов в языке GO – это возможность их мультиплексировать.
Реализации каналов на языке C++, конечно же, есть, например, в библиотеке boost::fibers, можно найти реализацию двух видов каналов. В документации boost::fibers можно найти описания способов мультиплексирования, правда не самих каналов, но и к ним можно применить подобную технику.
https://habr.com/ru/articles/805561/
#cpp #programming
👉 @cpp_lib
+7
Примеры исходного кода C++
Эта страница содержит примеры исходного кода функций стандартной библиотеки программирования C++.
https://www.sourcecodeexamples.net/p/cpp-source-code-examples.html
#cpp #programming
👉 @cpp_lib
Что такое явное и неявное приведение типов в С++? Зачем делать explicit-конструктор?
Ответ:
⚫️Явное приведение типов в C++ происходит, когда программист явно указывает, что значение одного типа должно быть преобразовано в значение другого типа. Это делается с помощью операторов приведения типов, таких как
static_cast, dynamic_cast, const_cast и reinterpret_cast¹.
⚫️Неявное приведение типов в C++ происходит автоматически, когда компилятор обнаруживает, что значение одного типа используется в контексте, где ожидается значение другого типа. Например, если вы пытаетесь присвоить значение типа int переменной типа double, компилятор автоматически преобразует значение int в значение double⁴.
⚫️Ключевое слово explicit используется для предотвращения неявных преобразований¹. Оно может быть использовано с конструкторами и функциями преобразования для указания того, что они не могут использоваться для неявных преобразований и копирования инициализации.
⚫️Например, если у вас есть класс с конструктором, который принимает один аргумент, вы можете использовать ключевое слово explicit, чтобы предотвратить неявное преобразование аргумента в объект вашего класса. Это может быть полезно, если вы хотите избежать ошибок, связанных с неожиданными неявными преобразованиями.
⚫️Вот простой пример использования ключевого слова explicit с конструктором:
class MyClass {
public:
explicit MyClass(int x) : m_x(x) {}
private:
int m_x;
};
int main() {
MyClass a = 5; // Ошибка: неявное преобразование запрещено
MyClass b(5); // ОК: явное преобразование
}
⚫️В этом примере конструктор класса MyClass объявлен как explicit, поэтому он не может использоваться для неявного преобразования значения int в объект класса MyClass. Попытка сделать это вызывает ошибку компиляции. Однако вы все еще можете использовать конструктор для явного преобразования значения int в объект класса MyClass, как показано в строке с объявлением переменной b.
#cpp #programming
👉 @cpp_lib📚C++ High Performance for Financial Systems: Build efficient and optimized financial systems by leveraging the power of C++
Автор: Ariel Silahian (2024)
Краеугольным камнем этой книги является освещение вопросов проектирования и архитектуры систем. Книга начинается с описания роли C++ в финансах и трейдинге. Вы узнаете о принципах и методологии построения систем, способных обрабатывать огромные объемы данных, с легкостью выполнять сложные торговые стратегии и поддерживать высочайший уровень надежности. Вооружившись этими знаниями, вы сможете справиться даже с самыми сложными торговыми сценариями.
#cpp #programming
👉 @cpp_lib
Хотите изучить C++ с нуля или задумываетесь о переходе на него?
Ждём вас на открытом практическом уроке «Функции, стек и рекурсия в C++» от OTUS, где мы:
- поговорим о том, как реализован вызов функции;
- узнаем, что из себя представляет стек и как он задействован в этом процессе;
- обсудим способы передачи параметров в функцию в C++ и поймем, почему их так много;
- познакомимся с рекурсивными функциями, решая классическую задачу о Ханойских башнях;
- узнаем, почему обычно стоит избегать активного использования рекурсии.
Спикер Андрей Рыжиков — опытный разработчик в НИИ обработки аэрокосмических изображений.
⏰ Встречаемся 4 июня в 20:00 мск в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!
➡ Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок.
Regular expressions library (since C++11)
Библиотека регулярных выражений предоставляет класс, представляющий регулярные выражения, которые являются своего рода мини-языком, используемым для выполнения сопоставления шаблонов в строках.
#include <iostream>
#include <iterator>
#include <regex>
#include <string>
int main()
{
std::string s = "Some people, when confronted with a problem, think "
"\"I know, I'll use regular expressions.\" "
"Now they have two problems.";
std::regex self_regex("REGULAR EXPRESSIONS",
std::regex_constants::ECMAScript | std::regex_constants::icase);
if (std::regex_search(s, self_regex))
std::cout << "Text contains the phrase 'regular expressions'\n";
std::regex word_regex("(\\w+)");
auto words_begin =
std::sregex_iterator(s.begin(), s.end(), word_regex);
auto words_end = std::sregex_iterator();
std::cout << "Found "
<< std::distance(words_begin, words_end)
<< " words\n";
const int N = 6;
std::cout << "Words longer than " << N << " characters:\n";
for (std::sregex_iterator i = words_begin; i != words_end; ++i)
{
std::smatch match = *i;
std::string match_str = match.str();
if (match_str.size() > N)
std::cout << " " << match_str << '\n';
}
std::regex long_word_regex("(\\w{7,})");
std::string new_s = std::regex_replace(s, long_word_regex, "[$&]");
std::cout << new_s << '\n';
}
https://en.cppreference.com/w/cpp/regex
#cpp #programming
👉 @cpp_libКрупнейший образовательный центр «Алабуга Политех» приглашает освоить профиль «Аэронавигация и программирование БПЛА» для выпускников 9-11 классов Обучение проходить по дуальной системе:✈️
работа + обучение в колледже.
✅ бесплатное обучение
✅ зарплата до 160 000 рублей
✅ проживание в современных ЖКС
Студенты официально трудоустраиваются и оттачивают свои навыки на высокотехнологичном производстве под руководством опытных инженеров-наставников.
✅ Подавай заявку на поступление в «Алабуга Политех».
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
