TGViewer
Channel Public Channel
С++ задачи и вопросы

С++ задачи и вопросы

@quizcpp

Задачи, тесты и теоретические вопросы по С++

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Subscribers
553
Photos
585
Videos
0
Links
212

Showing posts older than #1357 · Back to latest

Older Posts 20 shown
Post #1354 182
⚙️ std::filesystem::space

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

👩‍💻
@quizcpp
  • 🔥 2
Post #1353 159
⚙️ std::execution::par_unseq

Метод std::execution::par_unseq из стандартной библиотеки C++17 дает возможность параллельно выполнять алгоритмы с применением многопоточности. Этот метод особенно эффективен при работе с большими объемами данных, поскольку он может существенно ускорить выполнение таких алгоритмов, как сортировка, фильтрация и преобразование.

👩‍💻
@quizcpp
  • 🔥 1
Post #1352 154
⚙️ std::assume_aligned

std::assume_aligned из заголовка (доступно с C++20) информирует компилятор о том, что указатель имеет заданное выравнивание. Это способствует оптимизации доступа к памяти, особенно в приложениях, требующих высокой производительности.

👩‍💻
@quizcpp
  • 🔥 1
Post #1351 182
❓ Вопрос на собеседовании

Что такое Placement new в C++ и как оно используется?

Ответ ⬇️
Placement new — это особая форма оператора new, которая позволяет размещать объект в заранее выделенной области памяти. Вместо того чтобы выделять память в куче, как делает обычный new, placement new создает объект по адресу, который передается в качестве аргумента.

Это используется для более точного контроля над памятью, например, в реализациях кастомных аллокаторов, пулах памяти или для повышения производительности в системах с ограниченными ресурсами.

Пример использования ⚙️
```cpp
#include <iostream>
#include <new> // Для placement new

int main() {
alignas(alignof(int)) char buffer[sizeof(int)]; // Буфер для хранения объекта
int* ptr = new (buffer) int(42); // Размещение объекта в buffer

std::cout
```
@quizcpp
Post #1350 185
⚙️ std::monostate

std::monostate из заголовка используется в качестве «пустого» типа внутри std::variant. Это удобно для добавления незначимого состояния, которое можно обрабатывать отдельно.

👩‍💻
@quizcpp
Post #1349 171
⚙️ std::barrier

std::barrier из заголовка (доступно с C++20) служит для синхронизации выполнения потоков, ожидая, пока все участники не достигнут определённой точки (барьера). Это является полезным инструментом для координации действий в многопоточных приложениях.

👩‍💻
@quizcpp
Post #1348 195
🚫 Антипаттерн недели: Применение массива для проверки принадлежности

В C++ использование массива для проверки наличия элемента ведет к линейной сложности поиска O(n), что неэффективно для больших объемов данных.

✔️ Лучше использовать контейнеры std::unordered_set или std::set, которые обеспечивают более быстрый поиск: O(1) для std::unordered_set и O(log n) для std::set.

👩‍💻
@quizcpp
Post #1344 186
⚙️ std::chrono::steady_clock

std::chrono::steady_clock из заголовка представляет собой часы с постоянным ходом, которые не подлежат корректировке. Это удобно для измерения времени выполнения или задержек.

👩‍💻
@quizcpp
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →