1. Указатели: Где живут данные?
Это такие "хитрые" переменные, которые хранят не данные, а адреса других переменных. То есть, вы не просто работаете с переменной напрямую, а с её "местом жительства".int x = 10;
int* ptr = &a; // ptr хранит адрес переменной a
2. Ссылки: Удобные "алиасы" —
Это нечто вроде альтернативных имён для переменных. Они позволяют обращаться к одной и той же переменной под разными именами, но при этом не надо путаться с адресами.int& ref = x; // ref — это просто другое имя для переменной x
3. Указатели против ссылок: В чём разница?
Вот в чём интересная штука: указатели могут быть неинициализированными или "нулевыми", что указывает на отсутствие адреса.
А вот ссылки такого себе позволить не могут. Ссылку обязательно нужно сразу инициализировать и после этого она не может быть переназначена на что-то другое.int* ptr2 = nullptr; // указатель может быть пустым
// int& ref2; // ошибка, ссылку нельзя оставить неинициализированной
4. Указатели и ссылки в функциях: Передача по адресу
Вот где начинается настоящая магия. Когда вы передаёте аргументы в функции, указатели и ссылки позволяют не копировать переменные, а передавать их адреса или алиасы.void increment(int* ptr) {
(*ptr)++; // изменение значения по указателю
}
increment(&a); // передаём адрес переменной aPlease open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥12🤝6❤1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
cppreference— обширная и подробная документация по стандартной библиотеке C++, включая примеры и пояснения.
📌 Ссылочка: cppreference.com
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝23👍8
Многопоточность — это отличный способ повысить производительность приложений, позволяя выполнять задачи параллельно, вместо того чтобы ждать, пока закончится одна задача, прежде чем приступить к следующей.
В чём суть?
• Создание потоков — библиотека <thread> позволяет запускать задачи в отдельных потоках, делая выполнение более эффективным.
• Передача данных — в потоки можно передавать аргументы, и каждый поток будет работать с ними независимо, что открывает массу возможностей.
• Завершение работы — метод join() гарантирует, что все потоки завершат работу корректно, прежде чем программа продолжит выполнение.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥68🤝16👍5👎1
В этой статье:
• Cоздадите проект в IDE Android Studio.• Реализуете сессию непрерывного захвата изображений камеры.• Преобразуете изображения в матрицу OpenCV.🔊 Советую продолжить читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥46🤝15👍8
Move-семантика — это механизм C++, который позволяет эффективно перемещать ресурсы, избегая затратных копирований объектов.
Использование rvalue ссылок и функции move() помогает оптимизировать работу с временными объектами.
Особенности и использование смотри в картинках выше!
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥68👍16🤝16
This media is not supported in your browser
VIEW IN TELEGRAM
metanit — портал, на котором представлено множество полезных материалов для обучения программированию. Здесь можно найти ресурсы по разным языкам, в том числе и C++, каждое пособие содержит примеры кода.
📌 Ссылочка: metanit.com
📣 C++ Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥6
Небольшая шпаргалка по C++, которая поможет вам вспомнить синтаксис основных концепций языка.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥6👎2