Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
#include <type_traits>
// Функция доступна только для целых типов
template <typename T>
typename std::enable_if<std::is_integral<T>::value, T>::type
foo(T value) {
return value * 2;
}
// Функция доступна только для вещественных типов
template <typename T>
typename std::enable_if<std::is_floating_point<T>::value, T>::type
foo(T value) {
return value / 2;
}
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1🔥1
vector
и list
— это контейнеры STL, но они имеют разные структуры и характеристики.vector
— это динамический массив, который обеспечивает быстрый доступ к элементам по индексу и эффективное добавление элементов в конец. Однако вставка или удаление элементов в середине может быть медленной, так как требует сдвига элементов.list
— это двусвязный список, который позволяет быстро вставлять и удалять элементы в любом месте, но доступ к элементам по индексу медленный, так как требует последовательного обхода.Выбор между ними зависит от требований к производительности операций доступа и модификации.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
#include <iostream>
using namespace std;
class Base {
public:
virtual void show() { // Виртуальная функция
cout << "Base class" << endl;
}
};
class Derived : public Base {
public:
void show() override { // Переопределение функции
cout << "Derived class" << endl;
}
};
int main() {
Base* obj = new Derived();
obj->show(); // Вызов функции Derived
delete obj;
}
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1💯1
API (Application Programming Interface) бывают нескольких типов, каждый из которых имеет свои особенности и применение.
😎 REST API — основан на архитектурном стиле REST. Использует HTTP методы (GET, POST, PUT, DELETE) и работает с ресурсами, идентифицируемыми URI.
😎 SOAP API — протокол, использующий XML для обмена сообщениями. Обеспечивает высокий уровень безопасности и надежности, но более сложен в реализации.
😎 GraphQL API — позволяет клиентам запрашивать только необходимые данные. Гибкий и эффективный, особенно для сложных запросов.
😎 gRPC API — использует HTTP/2 и Protocol Buffers. Поддерживает двунаправленную потоковую передачу и высокую производительность.
Каждый тип API имеет свои преимущества и ограничения, подходящие для различных задач и архитектурных решений.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ С++ собеседования
Каждый тип API имеет свои преимущества и ограничения, подходящие для различных задач и архитектурных решений.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3
std::thread::detach
используется для отделения потока от объекта std::thread
, позволяя потоку продолжать выполнение независимо. После вызова detach
, объект std::thread
больше не связан с потоком и не может быть использован для управления им. Это полезно, когда поток должен работать в фоновом режиме, но важно помнить, что необходимо обеспечить завершение потока до завершения программы, иначе поведение будет неопределённым.
#include <iostream>
#include <thread>
void backgroundTask() {
// Фоновая задача
std::cout << "Фоновая задача выполняется\n";
}
int main() {
std::thread t(backgroundTask);
t.detach(); // Отделяем поток
// Поток продолжает выполнение независимо
std::cout << "Главный поток завершён\n";
return 0;
}
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
lvalue
(left value) — это выражение, которое ссылается на область памяти и имеет адрес, позволяя присваивание. rvalue
(right value) — это временное значение, не имеющее адреса, используемое в выражениях.
int x = 10; // x — это lvalue, 10 — это rvalue
int y = x + 5; // x + 5 — это rvalue, результат временный
int &ref = x; // ref — это lvalue-ссылка на x
lvalue
может стоять слева от оператора присваивания, а rvalue
— только справа.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1👀1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
class Car {
public:
std::string model;
int year;
// Конструктор класса
Car(std::string m, int y) : model(m), year(y) {}
};
Car myCar("Toyota", 2020); // Создание объекта myCar с использованием конструктора
myCar
теперь имеет доступ к членам класса Car
, таким как model
и year
.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤔2🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
В C++
😎 std::list — это двусвязный список. Он позволяет эффективно вставлять и удалять элементы в любом месте, но не поддерживает произвольный доступ к элементам. Это делает его идеальным для сценариев, где часто требуется вставка или удаление.
😎 std::deque — это двусторонняя очередь. Она поддерживает произвольный доступ, а также быструю вставку и удаление элементов с обоих концов. Это делает
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ С++ собеседования
list
и deque
— это контейнеры из STL, но они имеют разные характеристики и применения.deque
более универсальным, чем list
, но с немного большей сложностью для операций вставки и удаления в середине.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8✍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
set
и multiset
— это контейнеры из библиотеки стандартных шаблонов (STL), которые хранят элементы в отсортированном порядке. #include <set>
#include <iostream>
int main() {
std::set<int> s = {1, 2, 3};
s.insert(2); // Дубликат не добавится
for (int x : s) {
std::cout << x << " "; // Вывод: 1 2 3
}
}
#include <set>
#include <iostream>
int main() {
std::multiset<int> ms = {1, 2, 3};
ms.insert(2); // Дубликат добавится
for (int x : ms) {
std::cout << x << " "; // Вывод: 1 2 2 3
}
}
Основное отличие в том, что
set
не допускает дубликатов, а multiset
— допускает.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🤔1