Сохраняем и читаем JSON за пару строк!
Сейчас научимся быстро сохранять и загружать данные в формате JSON с помощью удобной заголовочной библиотеки nlohmann::json. Она не требует сложной установки — достаточно одного файла, и ты сразу можешь использовать удобный синтаксис работы с JSON.
Сначала подключим нужную библиотеку и настроим псевдоним для удобства:
Теперь создадим JSON-объект и сохраним его в файл. Здесь мы вручную записываем пары ключ-значение — это может быть имя, возраст, настройки и что угодно ещё:
А затем прочитаем этот JSON обратно из файла и выведем нужные поля. Это удобно для загрузки конфигов, пользовательских данных или состояния программы:
Результат при запуске:
🔥 Таким образом ты можешь работать с JSON-файлами в C++ — просто, понятно и без лишних зависимостей.
📣 C++ Ready | #практика
Сейчас научимся быстро сохранять и загружать данные в формате JSON с помощью удобной заголовочной библиотеки nlohmann::json. Она не требует сложной установки — достаточно одного файла, и ты сразу можешь использовать удобный синтаксис работы с JSON.
Сначала подключим нужную библиотеку и настроим псевдоним для удобства:
#include <nlohmann/json.hpp>
#include <fstream>
using json = nlohmann::json;
Теперь создадим JSON-объект и сохраним его в файл. Здесь мы вручную записываем пары ключ-значение — это может быть имя, возраст, настройки и что угодно ещё:
json j = {{"name", "Alice"}, {"age", 30}};
std::ofstream("data.json") << j.dump(4);
// 4 — отступы для читаемости
А затем прочитаем этот JSON обратно из файла и выведем нужные поля. Это удобно для загрузки конфигов, пользовательских данных или состояния программы:
json j;
std::ifstream("data.json") >> j;
std::cout << j["name"] << ", " << j["age"] << '\n';
Результат при запуске:
Alice, 30
🔥 Таким образом ты можешь работать с JSON-файлами в C++ — просто, понятно и без лишних зависимостей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥12❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Он объединяет свежие версии стандартов, отчёты рабочих групп, руководства по современным возможностям языка, календарь профильных мероприятий и подборку авторитетных ресурсов для углублённого изучения C++.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🤝7🔥4
Сегодня напишем небольшую консольную утилиту, которая отыщет все файлы-двойники в указанном каталоге.
В этой задаче:
• Рекурсивно обходим дерево директорий.
• Считаем для каждого файла контрольную сумму CRC32, читая его побайтно.
• Выводим лишь те группы, где обнаружено более одного совпадения.
Такой приём часто используют для поиска лишних копий фотографий и документов, оптимизации дискового пространства и контроля резервных копий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤5👍5
🔥9👍5
Он находит кратчайшие пути даже при наличии отрицательных весов рёбер в графе.
Ключевые моменты:
• Инициализация расстояний: все бесконечны, кроме стартовой вершины.
• Повторное обновление: V−1 раз проходим все рёбра.
• Проверка цикла: ищем возможные отрицательные циклы.
Алгоритм медленнее Дейкстры, но работает надёжно даже в сложных условиях.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32❤8👍5🤝1
Перегрузив operator(), мы делаем экземпляр класса вызываемым как обычную функцию и получаем «функтор» с собственным состоянием и логикой.
Что важно знать:
• Хранит данные прямо внутри «функции»
• Удобно передавать в алгоритмы STL.
• Работает там, где нужны колбэки с параметрами и запоминанием контекста.
Поэтому функторы делают код гибким и выразительным, особенно при работе с алгоритмами и шаблонами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27🤝9❤7👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥70❤8👍6🤝5