C++ собеседования pinned «ℹ️ Подписывайся на наши новые каналы! 🖥 JS собеседования 🖥 Backend собеседования»
std::find
— это алгоритм из библиотеки <algorithm>
в C++, который используется для поиска элемента в диапазоне. Он принимает три аргумента: итераторы начала и конца диапазона, а также значение, которое нужно найти.#include <vector>
#include <algorithm>
#include <iostream>
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = std::find(vec.begin(), vec.end(), 3);
if (it != vec.end()) {
std::cout << "Element found at index: " << std::distance(vec.begin(), it) << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
std::find
возвращает итератор на него, иначе — итератор конца.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2
union
, но с поддержкой типов, которые имеют нестандартные конструкторы и деструкторы.#include <variant>
#include <iostream>
int main() {
std::variant<int, double, std::string> data;
data = 10;
std::cout << std::get<int>(data) << std::endl;
data = 3.14;
std::cout << std::get<double>(data) << std::endl;
data = "Hello";
std::cout << std::get<std::string>(data) << std::endl;
return 0;
}
std::get
для доступа к текущему значению.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2
int value = 10;
int* const ptr = &value;
*ptr = 20; // OK
ptr = &anotherValue; // Ошибка
const int value = 10;
const int* ptr = &value;
ptr = &anotherValue; // OK
*ptr = 20; // Ошибка
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
nullptr
— это ключевое слово, введенное в стандарте C++11, которое представляет собой указатель на нулевой адрес. Оно заменяет использование NULL
, который в C++ является просто макросом, определенным как 0
. Использование nullptr
улучшает безопасность и ясность кода, так как он имеет тип std::nullptr_t
, что позволяет избежать неоднозначностей при перегрузке функций.
void foo(int* ptr) {
// Функция принимает указатель на int
}
void foo(double val) {
// Функция принимает double
}
foo(nullptr); // Вызовет foo(int*), так как nullptr имеет тип указателя
nullptr
помогает избежать ошибок, связанных с неявным преобразованием типов, и делает код более читаемым.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
#include <iostream>
// Определение структуры
struct Point {
int x;
int y;
// Метод для вывода координат
void print() {
std::cout << "Point(" << x << ", " << y << ")" << std::endl;
}
};
int main() {
// Создание экземпляра структуры
Point p;
p.x = 10;
p.y = 20;
// Вызов метода структуры
p.print(); // Вывод: Point(10, 20)
}
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤1
auto sum = [](int a, int b) -> int {
return a + b; // Возвращает сумму a и b
};
std::for_each
или std::sort
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
#include <iostream>
using namespace std;
// Базовый класс
class Animal {
public:
void eat() {
cout << "Eating..." << endl;
}
};
// Производный класс
class Dog : public Animal {
public:
void bark() {
cout << "Barking..." << endl;
}
};
int main() {
Dog dog;
dog.eat(); // Наследованный метод
dog.bark(); // Собственный метод
return 0;
}
Производный класс
Dog
наследует метод eat()
от базового класса Animal
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍2👨💻1
<iostream>
для консольного ввода/вывода и <fstream>
для работы с файлами.Пример создания потока для чтения из файла:
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream file("example.txt"); // Создание потока для чтения из файла
std::string line;
if (file.is_open()) {
while (getline(file, line)) { // Чтение файла построчно
std::cout << line << std::endl; // Вывод строки на консоль
}
file.close(); // Закрытие файла
} else {
std::cerr << "Не удалось открыть файл" << std::endl;
}
return 0;
}
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
template
, за которым следует список параметров шаблона в угловых скобках. Пример:
template <typename T>
T add(T a, T b) {
return a + b; // Функция складывает два значения типа T
}
T
— это параметр шаблона, который будет заменен на конкретный тип данных при вызове функции add
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
shared_ptr
. Он не увеличивает счетчик ссылок на объект, что помогает избежать циклических зависимостей и утечек памяти.weak_ptr
используется для проверки существования объекта и получения shared_ptr
, если объект еще существует. Для этого применяется метод lock()
, который возвращает shared_ptr
.#include <iostream>
#include <memory>
class Node {
public:
std::weak_ptr<Node> next; // Слабая ссылка на следующий узел
};
int main() {
auto node1 = std::make_shared<Node>();
auto node2 = std::make_shared<Node>();
node1->next = node2; // Установка слабой ссылки
if (auto sharedNext = node1->next.lock()) {
std::cout << "Next node is alive\n";
} else {
std::cout << "Next node is expired\n";
}
}
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤩1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
try
, catch
и throw
.
try {
// Код, который может вызвать исключение
if (errorCondition) {
throw std::runtime_error("Error occurred");
}
} catch (const std::exception& e) {
// Обработка исключения
std::cout << "Exception caught: " << e.what() << std::endl;
}
try
блок содержит код, который может вызвать исключение. throw
используется для генерации исключения. catch
блок перехватывает и обрабатывает исключение, предоставляя возможность восстановить выполнение программы.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👨💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2