Функция
std::unique
из заголовка <algorithm>
удаляет последовательные дубликаты в отсортированном диапазоне, оставляя уникальные элементы. Это полезно для очистки списка от повторяющихся значений.Please open Telegram to view this post
VIEW IN TELEGRAM
Функции
std::lower_bound
и std::upper_bound
из заголовка <algorithm>
используются для поиска границ диапазона элементов, равных заданному значению, в отсортированном контейнере. Это основа для эффективного бинарного поиска.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ класс
std::priority_queue
из заголовка <queue>
представляет собой контейнер с приоритетной очередью. Элементы извлекаются в порядке приоритета — по умолчанию, от большего к меньшему.Please open Telegram to view this post
VIEW IN TELEGRAM
Класс
std::set
из заголовка <set>
представляет собой контейнер, хранящий уникальные элементы в отсортированном порядке. Это удобно для работы с множествами или быстрого поиска.Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает массив целых чисел и удаляет из него все дубликаты. Возвращаемый массив должен содержать только уникальные значения, сохраняя исходный порядок их появления.
Пример:
std::vector<int> numbers = {1, 2, 2, 3, 4, 3, 5};
std::vector<int> result = removeDuplicates(numbers);
for (int num : result) {
std::cout << num << " ";
}
// Ожидаемый вывод: 1 2 3 4 5
Решение задачи на картинке
Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::reverse
из заголовка <algorithm>
позволяет изменить порядок элементов в контейнере на обратный. Это полезно для работы с массивами, векторами и другими последовательностями.Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Что такое perfect forwarding в C++, как оно работает и зачем оно нужно?
Ответ⬇️
Perfect forwarding — это техника передачи аргументов в функции или конструкторы так, чтобы сохранить их исходные квалификаторы (например, lvalue, rvalue). Она достигается с помощью универсальных ссылок (T&&) и функции std::forward. Perfect forwarding используется для передачи аргументов в шаблонных функциях без лишних копирований.
Пример использования⚙️
Что такое perfect forwarding в C++, как оно работает и зачем оно нужно?
Ответ
Пример использования
#include <iostream>
#include <utility>
void process(int& x) {
std::cout << "Lvalue: " << x << "\n";
}
void process(int&& x) {
std::cout << "Rvalue: " << x << "\n";
}
template <typename T>
void forwarder(T&& arg) {
process(std::forward<T>(arg));
}
int main() {
int a = 42;
forwarder(a); // Передаем lvalue
forwarder(100); // Передаем rvalue
return 0;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::replace
из заголовка <algorithm>
заменяет все вхождения указанного значения на новое значение в заданном диапазоне. Это полезно для массовой замены элементов в контейнерах.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функции
std::ceil
и std::floor
из заголовка <cmath>
используются для округления числа вверх или вниз до ближайшего целого. Это полезно для контроля направления округления.Please open Telegram to view this post
VIEW IN TELEGRAM
Не многие знаю что существует тип переменной byte. Число этого типа может быть в диапазоне от 0 до 255.
🗣️ А, и занимает это чудо в 2 раза меньше памяти. За такое вас по головке поглядят.
Please open Telegram to view this post
VIEW IN TELEGRAM
Это позволяет значительно упростить код, сделать его более читаемым и легким для поддержки.
•
Например:typedef std::vector<std::string> StrVector;
Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ метод
std::vector::resize
изменяет размер вектора. Если новый размер больше текущего, добавляются элементы с дефолтным значением. Если меньше — лишние элементы удаляются.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::set_intersection
из заголовка <algorithm>
позволяет найти пересечение двух отсортированных контейнеров. Результат записывается в другой контейнер.Please open Telegram to view this post
VIEW IN TELEGRAM
В C++ функция
std::adjacent_find
из заголовка <algorithm>
ищет первый элемент в контейнере, который имеет соседний элемент с таким же значением или удовлетворяет заданному условию. Это удобно для обнаружения повторений или паттернов.Please open Telegram to view this post
VIEW IN TELEGRAM
Метод wcscmp()
Функция wcscmp() определена в заголовочном файле cwchar.h . Функция wcscmp() используется для сравнения двух широких строк, заканчивающихся нулем, и это сравнение выполняется лексикографически.
Подробнее можно почитать здесь.
Функция wcscmp() определена в заголовочном файле cwchar.h . Функция wcscmp() используется для сравнения двух широких строк, заканчивающихся нулем, и это сравнение выполняется лексикографически.
Подробнее можно почитать здесь.
Метод difftime()
Метод difftime() используется для вычисления разницы между двумя значениями времени в секундах.
Подробнее можно почитать здесь.
Метод difftime() используется для вычисления разницы между двумя значениями времени в секундах.
Подробнее можно почитать здесь.
Просмотр все файлов в папке с помощью C++
Для того, чтобы просмотреть все файлы в папке с помощью C++, можно использовать функцию
В данном примере мы получаем текущую директорию с помощью функции
Для того, чтобы просмотреть все файлы в папке с помощью C++, можно использовать функцию
std::filesystem::directory_iterator()
. Данная функция позволяет перебирать все файлы в указанной директории.В данном примере мы получаем текущую директорию с помощью функции
fs::current_path()
, а затем проходим по всем файлам в этой директории с помощью цикла for
. Внутри цикла мы выводим путь к каждому файлу с помощью метода entry.path()
.