Публикации по теме 'cplusplus'


Ежедневный бит(е) C++ | стандартный:: порядок байтов
Ежедневный бит (е) C ++ # 130, информация о порядке следования байтов во время компиляции C ++ 20. std::endian из C++20 — это enum в заголовке ‹bit› , который предоставляет информацию о родном порядке байтов архитектуры. программа была составлена ​​для. #include <bit> #include <iostream> int main() { if constexpr (std::endian::native == std::endian::little) { std::cout << "This system is little-endian.\n"; } else if constexpr..

Ежедневный бит(е) C++ | Составление представлений C++20
Ежедневный бит (е) C++ # 172, Составление представлений C++ 20 без добавления избыточных копий. При работе с представлениями C++20 создание функций, инкапсулирующих сложные композиции представлений, может показаться заманчивым. Однако это, скорее всего, приведет к ненужным копиям данных. Вместо этого рассмотрите возможность компоновки представлений как встроенных переменных constexpr . #include <ranges> #include <cctype> constexpr inline auto trim_front =..

Векторы в C++
Векторы — это часть stl в C++, которая была разработана для облегчения жизни программиста. Они содержат некоторые функции, с помощью которых вы можете вносить изменения в вектор. Векторы являются динамическими и могут хранить значения без указания их предыдущего размера. #include <vector> СИНТАКСИС vector<int> g1; //Initialized the vector v.assign(5, 10); // fill the array with 10 five times replacing old g1.push_back(i); // Enter the value at the end of the..

LeetCode 617. Слияние двух двоичных деревьев (C++)
Топ 100 понравившихся вопросов Даны два бинарных дерева и представьте, что когда вы помещаете одно из них на другое, некоторые узлы двух деревьев перекрываются, а другие нет. Вам нужно объединить их в новое бинарное дерево. Правило слияния заключается в том, что если два узла перекрываются, то значения узлов суммируются как новое значение объединенного узла. В противном случае НЕнулевой узел будет использоваться как узел нового дерева. Пример 1: Input: Tree 1..

Ежедневный бит(е) C++ | std::views::adjacent, std::views::pairwise
Ежедневный бит (е) C++ # 127, представления «скользящего кортежа» C++ 23: std::views::adjacent и std::views::pairwise. std::views::adjacent — это представление, похожее на std::views::slide , создающее скользящее окно по входному диапазону. Однако там, где std::views::slide создает поддиапазоны, std::views::adjacent создает кортежи ссылок на элементы. Следовательно, элементы std::views::adjacent могут быть деконструированы с помощью структурированного связывания...

Ежедневный бит(е) C++ | std::views::join
Ежедневный бит (е) C++ # 103, Сглаживание представления C++ 20: std::views::join C++20 std::views::join создаст представление для элементов поддиапазонов. Эффективное объединение поддиапазонов в единый диапазон. #include <ranges> #include <vector> #include <numeric> std::vector<std::vector<int>> data{{1,2,3},{4,5,6},{7,8,9}}; // Simple join over the 2nd dimension of the array auto view1 = data | std::views::join; // view1 == {1, 2, 3, 4, 5, 6, 7, 8,..

Ежедневный бит(е) C++ | стандартный:: в_диапазоне
Ежедневный бит (е) C++ # 5, утилита C++ 20 std::in_range std::in_range — это простая утилита C++20, которая проверяет, находится ли заданное значение в диапазоне заданного целочисленного типа. Его можно использовать в качестве защиты, чтобы определить, будет ли интегральное преобразование во время выполнения изменять значение. #include <utility> #include <concepts> #include <cstdint> bool v1 = std::in_range<int>(-1); // v1 == true bool v2 =..