С++ задачи и вопросы
567 subscribers
531 photos
4 files
200 links
Задачи, тесты и теоретические вопросы по С++

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
⚙️ std::filesystem::create_directory

Метод std::filesystem::create_directory из заголовка используется для создания новой директории. Это полезно для программ, которые работают с файловыми структурами и должны создавать папки динамически.

👩‍💻

@quizcpp
🤔 Как это работает? — Передача аргументов в C++

В C++ аргументы функции можно передавать по значению, по ссылке и по константной ссылке. Эти подходы влияют на производительность и безопасность. Давайте разберём, как это работает.

➡️ Как это работает:

• Передача по значению: создаёт копию объекта, что может быть дорого для больших объектов.
• Передача по ссылке: передаёт ссылку на объект, избегая копирования.
• Передача по константной ссылке: добавляет защиту от изменения объекта внутри функции.

Развернутый аналог:
void modifyValue(const int &value) {
// value нельзя изменить
}

👩‍💻

@quizcpp
🔥1
⚙️ std::ofstream

std::ofstream из заголовка используется для записи данных в файл. Это удобный инструмент для работы с файлами, позволяющий записывать текстовую или бинарную информацию.

👩‍💻

@quizcpp
⚙️ std::byte

std::byte из заголовка предоставляет тип для работы с данными на уровне байтов. Это полезно для низкоуровневой работы с памятью и сетевыми протоколами.

👩‍💻

@quizcpp
Вопрос на собеседовании

Как работает std::atomic в C++, и в чём его преимущество перед обычными переменными в многопоточном программировании?

Ответ ⬇️
std::atomic — это шаблонный класс из библиотеки , который предоставляет атомарные операции с переменными, гарантируя их безопасность в многопоточной среде. Используя атомарные операции, вы избегаете гонок данных без необходимости явно использовать мьютексы.

Пример использования ⚙️
#include
#include
#include

std::atomic counter(0);

void increment() {
for (int i = 0; i < 1000; ++i) {
counter.fetch_add(1);
}
}

int main() {
std::thread t1(increment);
std::thread t2(increment);

t1.join();
t2.join();

std::cout

@quizcpp
Вопрос на собеседовании

Как работает std::atomic в C++, и в чём его преимущество перед обычными переменными в многопоточном программировании?

Ответ ⬇️
std::atomic — это шаблонный класс из библиотеки , который предоставляет атомарные операции с переменными, гарантируя их безопасность в многопоточной среде. Используя атомарные операции, вы избегаете гонок данных без необходимости явно использовать мьютексы.

Пример использования ⚙️
#include
#include
#include

std::atomic counter(0);

void increment() {
for (int i = 0; i < 1000; ++i) {
counter.fetch_add(1);
}
}

int main() {
std::thread t1(increment);
std::thread t2(increment);

t1.join();
t2.join();

std::cout

@quizcpp