Что верно о алгоритме быстрой сортировки?
Anonymous Quiz
15%
Алгоритм требует дополнительной памяти
17%
Для неотсортированного и отсортированного массива количество сравнений примерно равное
42%
Среднее количество обменов O(n*log n)
27%
Считается самым быстрым на практике алгоритмом
☝️Объяснение:
При создании объекта класса-наследника в первую очередь последовательно вызываются конструкторы всех его базовых классов. Когда происходит вызов конструктора класса Base, указатель на таблицу виртуальных функций указывает на таблицу класса Base, а уже при вызове конструктора класса Derived - на класс Derived. Поэтому не рекомендуется вызывать виртуальные функции из конструктора.
При создании объекта класса-наследника в первую очередь последовательно вызываются конструкторы всех его базовых классов. Когда происходит вызов конструктора класса Base, указатель на таблицу виртуальных функций указывает на таблицу класса Base, а уже при вызове конструктора класса Derived - на класс Derived. Поэтому не рекомендуется вызывать виртуальные функции из конструктора.
👍3
Что выведет программа?
Anonymous Quiz
12%
A1
44%
B1
2%
A2
30%
B2
7%
Не скомпилируется
5%
Неопределенное поведение
☝️Объяснение:
Виртуальные функции берут стандартный аргумент из самого Base класса. Поэтому ответ будет B1.
Многие стайлгайды запрещают это, потому что ведёт к таким странным ошибкам. Почему так сделано -- понятно, если у вас есть динамический тип, то мы должны где-то ещё хранить информацию о дефолтных аргументах, так как они обязаны вычисляться до вызова функции. Так как виртуализация в C++ сделана через разыменовывание vptr, где грубо говоря будут храниться указатели на функции, то единственный вариант дефолтного аргумента -- в самом интерфейсе.
Виртуальные функции берут стандартный аргумент из самого Base класса. Поэтому ответ будет B1.
Многие стайлгайды запрещают это, потому что ведёт к таким странным ошибкам. Почему так сделано -- понятно, если у вас есть динамический тип, то мы должны где-то ещё хранить информацию о дефолтных аргументах, так как они обязаны вычисляться до вызова функции. Так как виртуализация в C++ сделана через разыменовывание vptr, где грубо говоря будут храниться указатели на функции, то единственный вариант дефолтного аргумента -- в самом интерфейсе.
🔥2👍1
Что напечатает программа?
Anonymous Quiz
70%
42
5%
4242
3%
Неопределенное поведение
22%
Не скомпилируется
Что произойдет в результате компиляции данного кода? (С++11)
?
Вопрос: https://proghub.dev/q/6f0fd8
Добавить свой вопрос
?
Вопрос: https://proghub.dev/q/6f0fd8
Добавить свой вопрос
Что произойдет в результате компиляции данного кода? (С++11)
Anonymous Quiz
12%
12345
6%
1
69%
23456
14%
Ошибка компиляции
☝️Объяснение:
Является Standart library class, но не входит STL, несмотря на то, что поддерживает множество функций для работы алгоритмов, а также схожие методы. Да и вообще, это всего лишь typedef на специализацию шаблона.
Вопрос: https://proghub.dev/q/e6b1cc
🔥Добавить свой вопрос
Является Standart library class, но не входит STL, несмотря на то, что поддерживает множество функций для работы алгоритмов, а также схожие методы. Да и вообще, это всего лишь typedef на специализацию шаблона.
Вопрос: https://proghub.dev/q/e6b1cc
🔥Добавить свой вопрос
proghub.dev
C++ — Является ли std?:string контейнером STL
Является ли std::string контейнером STL
Что выведет программа?
Anonymous Quiz
4%
a
62%
ab
27%
aab
4%
b
2%
Неопределенное поведение
2%
Не скомпилируется
Отметьте существующие типы графов?
Anonymous Quiz
50%
мультиграф
32%
орграф
15%
гиперграф
0%
смеграф
3%
неограф
Какой из 6 вариантов является самым идиоматичным для объявления константной строки в хедер файле?
Тест: https://proghub.dev/t/cpp-senior
Добавить свой вопрос
Тест: https://proghub.dev/t/cpp-senior
Добавить свой вопрос
Какой из 6 вариантов является самым идиоматичным для объявления константной строки в хедер файле?
Anonymous Quiz
26%
1
10%
2
2%
3
33%
4
5%
5
24%
6
Для вычисления суммы S = 1 + 1/2 + 1/3 + … + 1/10 выберите правильную реализацию алгоритма
Anonymous Quiz
6%
s = 0; n = 1; Цикл (выполняется, если n < 10) {n = n+1; a = 1/n; s = s + a;}
30%
s = 0; n = 0; Цикл (не выполняется, если n > 10) {a = 1/n; s = s + a; n = n+1;}
27%
s = 0; n = 0; Цикл (не выполняется, если n = 10) {n = n+1; s = s + 1/n;}
36%
s = 0; n = 0; Цикл (выполняется, если n < 10) {n = n+1; a = 1/n; s = s + a;}