В стандартной библиотеке есть несколько видов итераторов:
- InputIterator – предназначен только для однократного чтения данных.
- OutputIterator – позволяет записывать данные в контейнер.
- ForwardIterator – поддерживает однократное чтение и запись, может быть использован многократно.
- BidirectionalIterator – поддерживает движение в обоих направлениях (вперед и назад).
- RandomAccessIterator – обеспечивает доступ к любому элементу за O(1), работает как указатель.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
33%
std::unique_lock требует явного вызова для захвата мьютекса
18%
std::unique_lock может быть использован для захвата мьютекса с использованием различных стратегий
31%
std::unique_lock автоматически освобождает мьютекс при выходе из области видимости
18%
std::unique_lock позволяет захватывать и освобождать мьютекс вручную
🤔1
Anonymous Quiz
17%
std::transform требует указания целевого диапазона для записи результатов
63%
std::transform поддерживает работу только с функциями
7%
std::transform применяется для преобразования элементов диапазона
12%
std::transform может быть использован для изменения элементов на месте
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Anonymous Quiz
7%
std::thread::native_handle можно использовать для взаимодействия с системными API
38%
std::thread::native_handle возвращает объект, специфичный для реализации
38%
std::thread::native_handle является частью стандарта C++
17%
std::thread::native_handle возвращает низкоуровневый дескриптор потока
👍1
Anonymous Quiz
11%
Виртуальные функции позволяют динамически определять, какую версию функции вызывать
12%
Виртуальные функции могут иметь реализацию по умолчанию
8%
Виртуальные функции поддерживают полиморфизм в C++
68%
Виртуальные функции могут быть определены только в базовых классах
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
6%
std::back_inserter может быть использован с контейнерами, поддерживающими вставку в конец
84%
std::back_inserter может быть использован с контейнерами, не поддерживающими вставку в конец
6%
std::back_inserter создает итератор, который вставляет элементы в конец контейнера
4%
std::back_inserter изменяет размер контейнера, добавляя элементы в конец
Anonymous Quiz
55%
constexpr if требует, чтобы все ветви условного выражения были корректными для всех возможных типов
13%
constexpr if позволяет условно включать код на этапе компиляции
15%
constexpr if является частью C++17
18%
constexpr if можно использовать внутри шаблонов
👍1
1. Шарятся:
- Глобальная память (данные, куча).
- Открытые файловые дескрипторы.
- Таблица виртуальной памяти.
2. Не шарятся:
- Стек каждого потока.
- Регистр процессора (содержит контекст выполнения).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Anonymous Quiz
3%
std::pow вычисляет значение первого аргумента, возведенное в степень второго аргумента
22%
std::pow работает с отрицательными и положительными значениями обоих аргументов
16%
std::pow возвращает результат в виде значения с плавающей запятой
59%
std::pow поддерживает только целочисленные значения для степени
Anonymous Quiz
86%
strcmp()
6%
strcat()
4%
strncpy()
5%
strfind()
👍1
1. Переместить последний элемент на место первого (O(1)).
2. Удалить последний элемент (pop_back()).
Это нарушит порядок, но значительно ускорит удаление.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Anonymous Quiz
23%
std::atomic::fetch_add возвращает предыдущее значение
6%
std::atomic::fetch_add атомарно увеличивает значение
51%
std::atomic::fetch_add требует явного указания размера шага
20%
std::atomic::fetch_add поддерживает флаги порядка памяти
🤔1
Anonymous Quiz
22%
std::thread предоставляет низкоуровневый интерфейс для работы с потоками
5%
std::async предоставляет высокоуровневый интерфейс для запуска асинхронных операций
7%
std::async может возвращать std::future для получения результата асинхронной задачи
65%
std::async всегда запускает задачу в отдельном потоке
2. Lambda-выражения: упростили работу с функциями.
3. auto: автоматическое определение типов для удобства разработки.
4. Unordered контейнеры: такие как unordered_map и unordered_set, ускорили работу с большими наборами данных.
5. Multithreading: появился стандартный std::thread и библиотека <future> для работы с потоками.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
16%
std::strcpy выполняет копирование символов до первого нулевого символа в источнике
19%
std::strcpy требует, чтобы буфер назначения был достаточно велик для хранения строки
41%
std::strcpy может быть использован для копирования строк из std::string
24%
std::strcpy копирует содержимое одной строки в другую, включая нулевой символ завершения
Anonymous Quiz
27%
std::invoke автоматически разыменовывает указатели на функции
52%
std::invoke требует явного указания типов аргументов
15%
std::invoke позволяет вызывать функции, функции-члены и объекты-функторы
6%
std::invoke является частью библиотеки
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
60%
std::atomic требует, чтобы все операции имели строгий порядок исполнения
31%
std::memory_order::acquire и std::memory_order::release не гарантируют полное упорядочение операций
4%
std::memory_order определяет семантику синхронизации для атомарных операций
4%
std::atomic позволяет выполнять атомарные операции над объектами