В этой статье:
• Настройка Visual Studio C++ for Linux Development • удалённая сборка через SSH прямо на консоли Anbernic • Корректная физика времени: dt-шаг и привязка к таймеру🔊 Советую продолжить читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍8🔥5
Эти инструменты позволяют анализировать типы как во время компиляции, так и во время выполнения — особенно полезно при работе с шаблонами и универсальными библиотеками.
Что важно знать:
• typeid даёт строковое имя типа во время выполнения
• type_traits позволяет проверять типы на этапе компиляции
• Это основа надёжного шаблонного кода и метапрограммирования.
🔥 — если узнал что-то новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38❤7🤝6👍5👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝41👍16🔥10❤1
Безопасно преобразуем строку в число!
Сейчас научимся превращать строку в целое число так, чтобы программа не упала при ошибке. Это пригодится при чтении пользовательского ввода, разборе конфигов и CLI-параметров.
Подключим нужные библиотеки — всё уже есть в стандартной поставке:
Допустим, у нас есть строка, которую мы хотим превратить в
Если строка содержит лишние символы или слишком большое число, преобразование может вызвать ошибку.
Пишем аккуратную проверку с помощью
Добавим обработку ошибок:
Возможный результат при запуске (если строка содержит мусор):
🔥 Таким образом ты можешь безопасно превращать строки в числа — с учётом всех ошибок и без крашей программы.
📣 C++ Ready | #практика
Сейчас научимся превращать строку в целое число так, чтобы программа не упала при ошибке. Это пригодится при чтении пользовательского ввода, разборе конфигов и CLI-параметров.
Подключим нужные библиотеки — всё уже есть в стандартной поставке:
#include <iostream>
#include <string>
Допустим, у нас есть строка, которую мы хотим превратить в
int:std::string raw = "42abc";
Если строка содержит лишние символы или слишком большое число, преобразование может вызвать ошибку.
Пишем аккуратную проверку с помощью
try-catch — если что-то пойдёт не так, мы это отловим:try {
int value = std::stoi(raw);
std::cout << "Число: " << value << '\n';Добавим обработку ошибок:
} catch (const std::invalid_argument&) {
std::cout << "Некорректный ввод: не число\n";
} catch (const std::out_of_range&) {
std::cout << "Число вне диапазона int\n";
}Возможный результат при запуске (если строка содержит мусор):
Некорректный ввод: не число
🔥 Таким образом ты можешь безопасно превращать строки в числа — с учётом всех ошибок и без крашей программы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27❤9🤝5👎1
❤14👍10🔥6🤝1
Он ищет минимальные расстояния от одной вершины до всех остальных в графе с неотрицательными весами рёбер.
Ключевые моменты:
• Инициализация расстояний: все бесконечны, кроме стартовой вершины.
• Цикл обработки: достаём вершину с минимальным расстоянием, обновляем её соседей.
• Функция relax обновляет путь к соседу, если найден более выгодный маршрут.
Алгоритм прост в реализации и идеально подходит для задач с положительными весами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26❤7👍5🤝3
Он берет ресурс «в единоличное владение» и автоматически освобождает его при выходе из области видимости. Код чище, намерения понятнее — никаких manual delete.
Что важно знать:
• RAII-подход: объект уничтожается автоматически, даже при исключениях
• Указатель нельзя копировать, но можно перемещать → один владелец, один delete
• std::make_unique — безопасный способ создания: защищает от утечек при new
unique_ptr прост, компактен и отлично сочетается с современным стилем C++.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15🔥12🤝11👍6😁1