Публикации по теме '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 =..