C++ собеседования
839 subscribers
106 photos
222 links
Подготовка к собеседованиям на позицию C/C++ разработчик

Еще больше на сайте https://frontview-it.ru

Backend собеседования - @frontview_backend
C/C++ работа - @frontview_cpp_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
std::array — это контейнер STL, предоставляющий статический массив фиксированного размера с дополнительными методами для удобства работы. Для использования необходимо подключить заголовочный файл <array>.


#include <array>
#include <iostream>

int main() {
std::array<int, 5> arr = {1, 2, 3, 4, 5}; // Создание массива на 5 элементов

arr[0] = 10; // Доступ к элементам по индексу
std::cout << "First element: " << arr.front() << "\n"; // Первый элемент
std::cout << "Last element: " << arr.back() << "\n"; // Последний элемент
std::cout << "Size: " << arr.size() << "\n"; // Размер массива

for (int i : arr) {
std::cout << i << " "; // Итерация по массиву
}
return 0;
}


std::array сочетает в себе безопасность и удобство STL с производительностью обычных массивов.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С++ собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🟠Указатель — это переменная, хранящая адрес памяти. Может быть nullptr, изменяемым и перенаправляемым на другой объект.


int x = 10;
int* ptr = &x; // ptr хранит адрес x
*ptr = 20; // изменение значения через указатель


Ссылка — это псевдоним для существующего объекта. Не может быть null, должна быть инициализирована при объявлении и не может быть перенаправлена.


int y = 30;
int& ref = y; // ref — псевдоним y
ref = 40; // изменение значения через ссылку


Указатели поддерживают арифметику, ссылки — нет. Ссылки безопаснее, но менее гибкие.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С++ собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤩1
std::is_polymorphic — это шаблонный класс из <type_traits>, который проверяет, является ли тип полиморфным. Полиморфный тип содержит хотя бы одну виртуальную функцию или наследуется от полиморфного класса.

Возвращает std::true_type или std::false_type в зависимости от результата проверки. Может использоваться для условной компиляции или статических проверок.


struct A { virtual void foo() {} };
struct B : A {};
struct C {};

static_assert(std::is_polymorphic<A>::value); // true
static_assert(std::is_polymorphic<B>::value); // true
static_assert(!std::is_polymorphic<C>::value); // false


Полезен для шаблонного метапрограммирования, когда требуется обрабатывать полиморфные и не полиморфные типы по-разному.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С++ собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
std::make_unique — удобная функция для создания std::unique_ptr, обеспечивающая безопасность при исключениях и избегающая явного new.

Принимает аргументы конструктора объекта и возвращает std::unique_ptr.


struct Widget {
Widget(int x, int y) {}
};

// Создание unique_ptr с make_unique
auto ptr = std::make_unique<Widget>(10, 20);


Для массивов используетя перегрузка с []:


auto arr = std::make_unique<int[]>(5); // Создает массив из 5 int


Предпочтительнее new + unique_ptr, так как исключает утечки при выбросе исключений.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ С++ собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7