В unordered_map используется хеш-таблица с цепочечной адресацией:
- Данные распределяются по бакетам (ячейкам), определяемым хеш-функцией.
- Если два разных ключа попадают в один бакет (коллизия), элементы связываются в список.
- При большом количестве элементов происходит рехеширование – увеличение количества бакетов и перераспределение данных.
Эта структура обеспечивает быстрые операции поиска, вставки и удаления в среднем за O(1).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
15%
std::chrono::high_resolution_clock может быть использован для получения текущего времени
15%
std::chrono::high_resolution_clock обеспечивает высокую точность измерения времени
28%
std::chrono::high_resolution_clock может быть не доступен на некоторых платформах
41%
std::chrono::high_resolution_clock является всегда монотонным
Anonymous Quiz
2%
std::shared_ptr управляет совместным владением объекта через указатель
12%
std::shared_ptr автоматически освобождает объект, когда последний владельце будет уничтожен
67%
std::shared_ptr можно использовать для создания циклических зависимостей без проблем с памятью
19%
std::shared_ptr поддерживает пользовательские делетеры
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
24%
TEST_P позволяет создавать тесты с параметрами, которые могут быть изменены
38%
TEST_P требует, чтобы параметры были заданы в конструкторе класса Fixture
19%
Параметры для TEST_P задаются с помощью INSTANTIATE_TEST_SUITE_P
19%
TEST_P может быть использован для создания тестов с различными входными данными
Anonymous Quiz
36%
std::thread может быть использован для синхронизации потоков
53%
std::thread автоматически освобождает ресурсы при завершении потока
8%
std::thread может быть создан с помощью любых вызываемых объектов
4%
std::thread может работать с функциями-членами класса
2. Контейнер использует методы разрешения коллизий:
o Связанные списки (chaining): все элементы с одним хешем добавляются в связанный список внутри одного bucket'а.
o Открытая адресация: поиск свободной ячейки для хранения данных.
3. После нахождения bucket'а выполняется проверка на равенство ключей с помощью метода equals.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
22%
decltype может вызывать ошибку компиляции, если выражение не определено корректно
15%
decltype используется для получения типа выражения без его вычисления
9%
decltype может использоваться для определения типа переменной или функции
55%
decltype не может использоваться для получения типа возвращаемого значения шаблонной функции
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
5%
std::unique_lock::lock требует явного захвата мьютекса
57%
std::unique_lock::lock может быть вызван несколько раз для одного и того же мьютекса
11%
std::unique_lock::lock захватывает мьютекс
27%
std::unique_lock::lock не требует использования std::mutex
Anonymous Quiz
35%
fork выполняется асинхронно
24%
fork создает новый процесс, идентичный родительскому
9%
fork возвращает идентификатор дочернего процесса родительскому процессу
33%
fork возвращает ноль дочернему процессу
- Деструкторы членов класса или базового класса должны корректно освобождать ресурсы.
- Лучше избегать сложной логики, которая может выбрасывать исключения.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
5%
std::string_view является частью библиотеки
16%
std::string_view предоставляет интерфейс для работы с подстроками без копирования
74%
std::string_view управляет временем жизни строки, на которую он указывает
5%
std::string_view поддерживает сравнение строк
Anonymous Quiz
12%
std::vector всегда хранит элементы в непрерывном блоке памяти
56%
std::vector не поддерживает перемещение элементов внутри себя
27%
std::vector поддерживает операции вставки и удаления элементов в середине
5%
std::vector поддерживает динамическое изменение размера
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
10%
std::unique_lock предоставляет более гибкие механизмы блокировки по сравнению с std::lock_guard
3%
std::unique_lock автоматически разблокирует мьютекс при выходе из области видимости
13%
std::unique_lock может быть использован для реализации ожидания и таймаутов
74%
std::unique_lock поддерживает блокировку нескольких мьютексов одновременно
Anonymous Quiz
75%
std::accumulate изменяет элементы диапазона
18%
std::accumulate требует, чтобы элементы могли быть суммированы
4%
std::accumulate суммирует элементы диапазона
4%
std::accumulate поддерживает начальное значение для суммы
💊1
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊4👍2
Anonymous Quiz
25%
std::exclusive_scan вычисляет частичные суммы элементов диапазона, исключая текущий элемент
58%
std::exclusive_scan изменяет элементы диапазона
17%
std::exclusive_scan может использовать бинарные операции для вычислений
0%
std::exclusive_scan поддерживает начальное значение для частичной суммы