В чем отличие overload и override?
Ответ:
overload - это перегрузка, два одинаковых имени функций с разными принимаемыми аргументами, override - это переопределение (с помощью таблицы виртуальных функций), изменение поведения функции в выведенном классе ( с помощью механизма виртуальных функций).
👉 @cpp_geek
Ответ:
👉 @cpp_geek
👍8
Алгоритмы all_of, any_of и none_of
Начиная с C ++ 11, в STL C ++ добавляются некоторые новые интересные алгоритмы. Эти алгоритмы работают с массивом и полезны для экономии времени во время кодирования и, следовательно, также полезны в конкурентном программировании.
👉 @cpp_geek
Начиная с C ++ 11, в STL C ++ добавляются некоторые новые интересные алгоритмы. Эти алгоритмы работают с массивом и полезны для экономии времени во время кодирования и, следовательно, также полезны в конкурентном программировании.
👉 @cpp_geek
👍7⚡2
Алгоритм includes
Используется для распознавания, существуют ли все числа тз одного контейнера в других контейнерах. Это помогает проверить, является ли набор подмножеством другого набора или нет, учитывая, что набор упорядочен. Ожидается, что элементы будут отсортированы по порядку.
👉 @cpp_geek
Используется для распознавания, существуют ли все числа тз одного контейнера в других контейнерах. Это помогает проверить, является ли набор подмножеством другого набора или нет, учитывая, что набор упорядочен. Ожидается, что элементы будут отсортированы по порядку.
👉 @cpp_geek
👍9❤3⚡2
Алгоритм merge
Объединяет две отсортированные последовательности, ограниченные диапазонами
Шаблон:
➡️ @cpp_geek
Объединяет две отсортированные последовательности, ограниченные диапазонами
[first1,last1)
и [first2,last2)
, в единую отсортированную последовательность, начинающуюся с позиции result.Шаблон:
merge (initer1 beg1, initer1 end1,
initer2 beg2, initer2 end2,
outiter res).
➡️ @cpp_geek
👍4⚡1
Быстрая сортировка
Отсортируйте заданный массив с помощью быстрой сортировки.
Формат входных данных:
Первая строка входных данных содержит одно натуральное число
Формат выходных данных:
Выведите элементы массива в порядке неубывания.
➡️ @cpp_geek
Отсортируйте заданный массив с помощью быстрой сортировки.
Формат входных данных:
Первая строка входных данных содержит одно натуральное число
nn (1 ≤ n ≤ 10^5)
– количество элементов в массиве. В следующей строке находятся элементы массива – n
целых чисел, не превосходящих по абсолютной величине 10^9.Формат выходных данных:
Выведите элементы массива в порядке неубывания.
➡️ @cpp_geek
👍3⚡2
Что лучше const или define?
Ответ:
У
Определенно, лучше использовать const, а не define.
➡️ @cpp_geek
Ответ:
define
- это директива препроцессора, которая не учитывает ни типов, ни областей видимости. Препроцессор вставляет значение везде, где оно используется и создается множество копий 3.14159265359 в объектном коде, константа никогда не порождает больше одной копии этого значения. define трудно отлаживать, потому что у него нет имени, только магическое число, нельзя взять адрес или создать ссылку на это значение.У
const
есть тип, область видимости, можно взять адрес, создать константную ссылку на эту переменную.Определенно, лучше использовать const, а не define.
➡️ @cpp_geek
👍17❤4
Работа с файлами
Для того чтобы прочитать файл понадобится выполнить те же шаги, что и при записи в файл с небольшими изменениями:
1) создать объект класса
2) прочитать файл;
3) закрыть файл.
➡️ @cpp_geek
Для того чтобы прочитать файл понадобится выполнить те же шаги, что и при записи в файл с небольшими изменениями:
1) создать объект класса
ifstream
и связать его с файлом, из которого будет производиться считывание;2) прочитать файл;
3) закрыть файл.
➡️ @cpp_geek
👍5
assert()
Аpгyмент
Когда expression ложно (ноль), assert вызывает abort, предварительно выведя сообщение, показывающие, какая и где произошла ошибка:
assertion failed: expression, file filename, line lineno
➡️ @cpp_geek
assert()
- макроопределение для вывода отладочных диагностических сообщений. Используется для включения в программу диагностических операторов и принимает один аргумент (int expression).Аpгyмент
expression
должен быть выражением, которое принимает значение истина (не ноль), если программа работает так, как вы предполагаете.Когда expression ложно (ноль), assert вызывает abort, предварительно выведя сообщение, показывающие, какая и где произошла ошибка:
assertion failed: expression, file filename, line lineno
➡️ @cpp_geek
👍13
Ключевое слово typedef
Это ключевое слово, которое создает псевдоним для существующего типа данных.
По соглашению имена
Это помогает указать, что идентификатор представляет собой тип, а не переменную или функцию, а также помогает предотвратить конфликты имен с другими типами идентификаторов.
➡️ @cpp_geek
Это ключевое слово, которое создает псевдоним для существующего типа данных.
По соглашению имена
typedef
объявляются с использованием суффикса "_t
". Это помогает указать, что идентификатор представляет собой тип, а не переменную или функцию, а также помогает предотвратить конфликты имен с другими типами идентификаторов.
➡️ @cpp_geek
👍15
Что выведет код сверху?
Ответ: “Constructor called” 5 раз и затем “Destructor called” 5 раз.
В приведенной выше программе мы сначала инициировали переменные с пятью указателями, используя ключевое слово new, следовательно, после этого будет вызван конструктор
➡️ @cpp_geek
Ответ: “Constructor called” 5 раз и затем “Destructor called” 5 раз.
В приведенной выше программе мы сначала инициировали переменные с пятью указателями, используя ключевое слово new, следовательно, после этого будет вызван конструктор
fives time
, поскольку мы используем delete[]
(используется для удаления нескольких объектов) для удаления переменных, следовательно, все созданные пять объектов будут уничтожены и, следовательно, будет вызван деструктор five times
.➡️ @cpp_geek
👍11⚡1
Алгоритм upper_bound
Он возвращает итератор, указывающий на первый элемент в диапазоне
Элементы в диапазоне должны быть уже отсортированы или, по крайней мере, разделены по значению
➡️ @cpp_geek
Он возвращает итератор, указывающий на первый элемент в диапазоне
[first, last
), который больше значения, или last
, если такой элемент не найден.Элементы в диапазоне должны быть уже отсортированы или, по крайней мере, разделены по значению
val
.➡️ @cpp_geek
👍5⚡2