В этом посте изучим как использовать std::unordered_map в C++ для хранения данных в виде пар ключ-значение. Рассмотрим некоторые вещи:
- Создание и добавление элементов
- Извлечение данных
- Удаление элемента
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40🤝18👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Exercism — платформа для изучения программирования через решение задач на различных языках, включая C++. На платформе есть как теоретический, так и практические материалы.
📌 Ссылочка: exercism.org
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Code Live — Платформа по обучению основам программирования на С++ для начинающих. Подробные примеры по написанию простых приложений
📌 Ссылочка: code-live.ru
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Рассмотрим некоторые продвинутые фишки C++, которые часто упускаются, но могут существенно улучшить ваш код.
Начнем с
std::variant
— позволяет хранить значения разных типов в одной переменной, что делает ваш код более безопасным и удобным по сравнению с использованием void*
или сложных структур:#include <variant>
#include <iostream>
std::variant<int, double, std::string> data = 42;
data = 3.14;
data = "Hello, C++";
std::visit([](auto&& arg) { std::cout << arg << '\n'; }, data);
Функции с
constexpr
могут быть вычислены компилятором во время компиляции программы, что приводит к более эффективному и быстрому коду:constexpr int square(int x) {
return x * x;
// Функция вычисляет квадрат числа
}
constexpr int result = square(5);
// Значение вычисляется на этапе компиляции
Под конец расскажу про Structured Bindings — упрощает работу с парами, кортежами и структурами, позволяя распаковывать значения в отдельные переменные:
std::tuple<int, double, char> getValues() {
return {42, 3.14, 'A'}
}
auto [intValue, doubleValue, charValue] = getValues();
std::cout << intValue << ", " << doubleValue << ", " << charValue << '\n';
Есть идеи, что можно будет обсудить в следующем посте? Делись мнением в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Hacking CPP — Платформа по обучению основам программирования на C++, изучение алгоритмов, типов, различных операций и всякого такого
📌 Ссылочка: hackingcpp.com
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍7🤝4
📖 Unreal Engine 5 Game Development with C++ Scripting
⬇️ Скачать книгу
📣 C++ Ready | #книга
Авторы книги предлагают пошаговые инструкции по разработке игр, начиная с основ и заканчивая более сложными аспектами
Автор: Дэвид Никсон
Год: 2021
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2👎1
• Optional — Позволяет безопасно обрабатывать возможные ошибки и неопределенные значения.
• Shared_ptr — Умный указатель, который автоматически управляет временем жизни объекта с использованием подсчета ссылок.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍9🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
AtCoder — Платформа, на которой вы можете следить за контестами по спортивному программированию, тренироваться к ним и участвовать в них
📌 Ссылочка: atcoder.jp
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎2🔥2
Указатели — одна из сложных, но мощных сторон C++. Разберем их использование и подводные камни:
1. Указатели и динамическая память Использование
new
и delete
для управления памятью:int* ptr = new int(42);
std::cout << *ptr << std::endl; // 42
delete ptr; // Освобождение памяти
2. Умные указатели unique_ptr
Автоматизируют управление памятью, предотвращая утечки:
#include <memory>
std::unique_ptr<int> ptr = std::make_unique<int>(42);
std::cout << *ptr << std::endl; // 42
3. Передача указателя на функцию
Указатели позволяют передавать функции как параметры:
void apply(int (*func)(int), int x) {
std::cout << func(x) << std::endl;
}
int square(int x) { return x * x; }
apply(square, 5); // 25
Этот пример демонстрирует передачу функции для обработки данных
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍6🤝3
👍14🔥10🤝2