Какой из следующих способов является правильным для объявления функции friend?
Anonymous Quiz
62%
friend void func();
28%
void friend func();
8%
friend function func();
2%
function friend func();
Какой из перечисленных ниже типов не является допустимым типом итератора в C++?
Anonymous Quiz
8%
Итератор ввода
5%
Итератор вывода
13%
Прямой итератор
74%
Побочный итератор
Каков результат следующего кода?
#include <iostream>
using namespace std; int main() { int arr[] = {10, 20, 30}; cout << sizeof(arr) / sizeof(arr[0]) << endl; return 0; }
#include <iostream>
using namespace std; int main() { int arr[] = {10, 20, 30}; cout << sizeof(arr) / sizeof(arr[0]) << endl; return 0; }
Anonymous Quiz
78%
3
10%
10
6%
20
6%
30
Какой из следующих вариантов является правильным способом объявления функции friend?
Anonymous Quiz
77%
friend void func();
17%
void friend func();
5%
friend function func();
2%
function friend func();
Как правильно создать объект myObj класса MyClass?
Anonymous Quiz
15%
class MyClass = new myObj();
15%
class myObj = new MyClass();
9%
new myObj = MyClass();
62%
MyClass myObj;
Чем опасен следующий код?
Anonymous Poll
59%
Утечка памяти
37%
Двойное удаление памяти
37%
Ошибка компиляции
22%
Ошибка выполнения
💩1
Что произойдёт при выполнении?
Anonymous Poll
41%
lvalue rvalue rvalue
35%
lvalue lvalue rvalue
12%
rvalue rvalue rvalue
12%
lvalue rvalue lvalue
⚙️ std::chrono::steady_clock
std::chrono::steady_clock из заголовка представляет собой часы с постоянным ходом, которые не подлежат корректировке. Это удобно для измерения времени выполнения или задержек.
👩💻
@quizcpp
std::chrono::steady_clock из заголовка представляет собой часы с постоянным ходом, которые не подлежат корректировке. Это удобно для измерения времени выполнения или задержек.
👩💻
@quizcpp
🚫 Антипаттерн недели: Применение массива для проверки принадлежности
В C++ использование массива для проверки наличия элемента ведет к линейной сложности поиска O(n), что неэффективно для больших объемов данных.
✔️ Лучше использовать контейнеры std::unordered_set или std::set, которые обеспечивают более быстрый поиск: O(1) для std::unordered_set и O(log n) для std::set.
👩💻
@quizcpp
В C++ использование массива для проверки наличия элемента ведет к линейной сложности поиска O(n), что неэффективно для больших объемов данных.
✔️ Лучше использовать контейнеры std::unordered_set или std::set, которые обеспечивают более быстрый поиск: O(1) для std::unordered_set и O(log n) для std::set.
👩💻
@quizcpp
⚙️ std::barrier
std::barrier из заголовка (доступно с C++20) служит для синхронизации выполнения потоков, ожидая, пока все участники не достигнут определённой точки (барьера). Это является полезным инструментом для координации действий в многопоточных приложениях.
👩💻
@quizcpp
std::barrier из заголовка (доступно с C++20) служит для синхронизации выполнения потоков, ожидая, пока все участники не достигнут определённой точки (барьера). Это является полезным инструментом для координации действий в многопоточных приложениях.
👩💻
@quizcpp
⚙️ std::monostate
std::monostate из заголовка используется в качестве «пустого» типа внутри std::variant. Это удобно для добавления незначимого состояния, которое можно обрабатывать отдельно.
👩💻
@quizcpp
std::monostate из заголовка используется в качестве «пустого» типа внутри std::variant. Это удобно для добавления незначимого состояния, которое можно обрабатывать отдельно.
👩💻
@quizcpp
❓ Вопрос на собеседовании
Что такое 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
Что такое 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
⚙️ std::assume_aligned
std::assume_aligned из заголовка (доступно с C++20) информирует компилятор о том, что указатель имеет заданное выравнивание. Это способствует оптимизации доступа к памяти, особенно в приложениях, требующих высокой производительности.
👩💻
@quizcpp
std::assume_aligned из заголовка (доступно с C++20) информирует компилятор о том, что указатель имеет заданное выравнивание. Это способствует оптимизации доступа к памяти, особенно в приложениях, требующих высокой производительности.
👩💻
@quizcpp
🔥1
⚙️ std::execution::par_unseq
Метод std::execution::par_unseq из стандартной библиотеки C++17 дает возможность параллельно выполнять алгоритмы с применением многопоточности. Этот метод особенно эффективен при работе с большими объемами данных, поскольку он может существенно ускорить выполнение таких алгоритмов, как сортировка, фильтрация и преобразование.
👩💻
@quizcpp
Метод std::execution::par_unseq из стандартной библиотеки C++17 дает возможность параллельно выполнять алгоритмы с применением многопоточности. Этот метод особенно эффективен при работе с большими объемами данных, поскольку он может существенно ускорить выполнение таких алгоритмов, как сортировка, фильтрация и преобразование.
👩💻
@quizcpp
🔥1
⚙️ std::filesystem::space
std::filesystem::space из заголовка предоставляет данные о свободном, занятом и общем пространстве на устройстве. Это полезно для отслеживания состояния файловой системы.
👩💻
@quizcpp
std::filesystem::space из заголовка предоставляет данные о свободном, занятом и общем пространстве на устройстве. Это полезно для отслеживания состояния файловой системы.
👩💻
@quizcpp
🔥2