TGViewer
Channel Public Channel
Библиотека собеса по C++ | вопросы с собеседований

Библиотека собеса по C++ | вопросы с собеседований

@cpp_interview_lib

Вопросы с собеседований по C++ и ответы на них.

Как запустить своего ии-агента: https://clc.to/tvpmDQ

По рекламе: @tproger_sales_bot

Учиться у нас: https://proglib.io/w/9ccf302b

Для обратной связи: @proglibrary_feeedback_bot
Subscribers
4.61K
Photos
484
Videos
7
Links
297

Showing posts older than #23 · Back to latest

Older Posts 20 shown
Post #22 1.13K
Могут ли ссылки отсылать к недопустимому местоположению в памяти в C++?

В C++ ссылки более безопасны, чем указатели, потому что ссылки должны быть инициализированы, и их нельзя изменить, чтобы ссылаться на что-то другое после инициализации. Но есть исключения, когда у нас могут быть недействительные ссылки.
Но есть пара исключений, когда у нас могут быть недействительные ссылки. Они приведены на картинке.
  • 👍 8
  • ❤ 3
  • 🌚 1
Post #21 1.18K
В чем отличие overload и overried?

Ответ:
overload — это перегрузка, два одинаковых имени функций с разными принимаемыми аргументами, override — это переопределение (с помощью таблицы виртуальных функций), изменение поведения функции в выведенном классе (с помощью механизма виртуальных функций).
  • 🤔 9
  • 👍 3
  • ❤ 1
Post #20 1.26K
Отличия между указателем и массивом?

Массивы создаются в статической памяти или в стеке. Указатели могут указывать на любой тип в памяти. В массивах можно изменять содержимое, а по указателю не всегда.
  • 👍 10
  • 😁 3
  • 👎 2
Post #19 1.46K
Для чего нужен std::string::at?

std::string::at можно использовать для извлечения символов по символам из заданной строки. Подробнее ознакомиться можно здесь.
  • 👍 6
  • ❤ 2
Post #18 1.43K
Что такое чисто виртуальный метод и абстрактный класс?

Чисто виртуальный метод — это метод, у которого отсутствует реализация. Абстрактный класс — это класс имеющий хотя бы один чисто виртуальный метод. Как следствие, экземпляр подобного класса не может быть создан т.к. отсутствует реализация виртуального метода.
#код
  • 👍 11
  • 👎 2
Post #17 1.45K
Что такое сложность алгоритма и от чего она зависит?

Сложность алгоритма — это количественная характеристика его эффективности, которая показывает, как зависят затраты ресурсов (времени, памяти) от размера входных данных.

Сложность зависит от:
— Объема операций, которые алгоритм выполняет при обработке данных.
— Количества итераций циклов, рекурсивных вызовов.
— Зависимости числа операций от размера входных данных.
— Операций внутри вложенных циклов и структур.

Чем быстрее растёт сложность функции с ростом входных данных, тем менее эффективен алгоритм.
  • 👍 9
Post #16 1.33K
  • 👍 14
Post #15 1.21K
Post #14 1.17K
Зачем нужен count_if?

Алгоритм count_if выполняет подсчет количества выполнений условия в последовательности.
  • 👍 4
  • 🥰 4
  • 🔥 1
Post #13 1.15K
Бывает такое, что оператор new не выделяет память?

Да, бывает, когда new передаётся указатель на уже выделенную память (например, с помощью malloc). Это называется placement new. И оператор new без изменения возвращает второй параметр — указатель (void* operator new(std::size_t, void*)). Это используется для создания объектов в выделенном "хранилище" или после malloc.

Важно! В этом случае деструктор нужно вызывать самостоятельно!
  • 👍 8
  • 🔥 1
Post #12 1.19K
Как проверить, содержит ли строка только буквы в C++?

Мы можем использовать регулярное выражение, чтобы проверить, содержит ли строка только буквы.

Начиная с C++11, мы можем использовать std::regex_match для сопоставления последовательности с регулярным выражением.
  • 🥰 9
  • 👍 3
Post #11 1.12K
Какую проблему решает пространство имён?

Пространство имен — это идентификатор, предоставляющий несколько библиотек. Используется для устранения конфликтов имен, когда имя связано с двумя или более библиотеками. Включает внешние объявления библиотеки с уникальными пространствами имен, что исключает возможность конфликта.
  • 👍 9
Post #10 1.17K
Что за ошибка в приведенном ниже коде и как ее исправить?

Последним аргументом memset должен быть sizeof(*bar), а не sizeof(bar). sizeof(bar) вычисляет размер bar (то есть самого указателя), а не размер структуры, на которую указывает bar. Поэтому код можно исправить, используя sizeof(*bar) в качестве последнего аргумента вызова memset.
  • 👍 11
Post #9 1.25K
Какие специальные функции-члены может генерировать сам компилятор? Напишите их сигнатуру?

Ответ:
Компилятор может сам генерировать шесть функций.

• Конструктор по умолчанию;
Object();
• деструктор;
~Object();
• копирующий конструктор;
Object(const Object& oth);
• оператор копирующего присваивания;
Object& operator=(const Object& oth);
• перемещающий конструктор;
Object(Object&& oth);
• оператор перемещающего присваивания;
Object& operator=(Object&& oth);
  • 👍 9
Post #8 1.24K
Сколько раз будет выполняться этот цикл? Поясните свой ответ.

Если бы вы сказали 300, вы были бы правы, если бы i было объявлено как int. Однако поскольку i было объявлено как unsigned char, правильным ответом будет то, что этот код приведет к бесконечному циклу.

Вот почему:
Выражение 2 * half_limit будет преобразовано в int (по правилам преобразования C++) и будет иметь значение 300. Однако, поскольку i — это беззнаковый символ, он будет пересчитан в 8-битное значение, которое, достигнув 255, переполнится (то есть вернется к 0), и цикл, таким образом, будет продолжаться вечно.
  • 👍 4
Post #7 1.15K
Напишите базовую реализацию std::shared_ptr.

std::shared_ptr — умный указатель, который позволяет разделять владение объектом между несколькими shared_ptr. Когда последний shared_ptr уничтожается, он автоматически удаляет объект.
  • 🔥 5
  • 👍 3
  • 👎 1
Post #6 1.09K
Сколько раз будут выполняться циклы внутри программы?

Ответ: в первом случае цикл не выполнится никогда, а во втором случае будет выполняться бесконечно.
#вопросы_с_собеседований
  • 👍 14
Post #5 1.14K
Как определить, что в программе есть memory leak?

В программе на C++ можно определить наличие memory leak с помощью использования инструментов для анализа памяти, таких как Valgrind или AddressSanitizer. Другим возможным способом является использование кода, который автоматически отслеживает выделение и освобождение памяти. Можно также использовать дебаггер или профилирование, чтобы выявить проблемы с памятью.

Важно понимать, что memory leak может привести к утечке ресурсов и ухудшению производительности приложения, поэтому необходимо тщательно мониторить использование памяти и обнаруживать любые проблемы сразу.
  • 👍 7
Post #4 1.08K
Как проверить, найден ли элемент в массиве С++?

В С++ вы должны использовать std::find и проверить, указывает ли результирующий указатель на конец диапазона.
  • 👍 8
  • ❤ 2
Post #1
Channel created
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →