Вопросы по теме 'range-v3'

Разделить диапазон на диапазон перекрывающихся диапазонов
Я пытаюсь использовать библиотеку Ranges-V3, чтобы разделить контейнер значений на диапазон диапазонов, чтобы соседние диапазоны имели общие граничные элементы. Учтите следующее: using namespace ranges; std::vector<int> v = { 1, 2, 3, 0,...
779 просмотров
schedule 21.10.2021

Почему алгоритмы диапазонов несовместимы с итераторами std?
#include <vector> #include <iostream> #include <range/v3/all.hpp> int main() { auto coll = std::vector{ 1, 2, 3 }; ranges::copy( coll, ranges::ostream_iterator<int>{ std::cout, ", " } ); // ok...
774 просмотров
schedule 10.10.2021

Распаковка диапазона кортежей в n-арную функцию
Предположим, у меня есть несколько кортежей, например. поступает из функции zip. Должны ли функции, которые работают с этим диапазоном, всегда быть унарными, или существует какое-то преобразование, которое распаковывает кортеж в аргументы функции....
181 просмотров
schedule 01.12.2021

Алгоритм STL / диапазонов для расчета средневзвешенного значения
Предположим, у меня есть вектор оценок, где оценка struct Grade{ const int grade; const int ECTS; // weight }; Есть ли алгоритм / алгоритмы STL / range-v3, которые позволяют мне это сделать? Я знаю, что мог бы сделать это с std::...
549 просмотров
schedule 26.09.2021

разделить диапазон чисел на несколько диапазонов с помощью range-v3
У меня есть определенное количество точек и несколько тетраэдров в пространстве, и для каждой точки я вычисляю, в каком тетраэдре она находится. Точки, не входящие в тетраэдр, отбрасываются. auto samplerIdAndCoarseTetra = mcSamplers...
32 просмотров
schedule 05.09.2021

Может ли алгоритм на основе диапазона быть полностью независимым от типа контейнера (и в то же время оптимизированным для любого)?
Мне было интересно, будут ли boost::range или range_v3 согласовывать свободные функции и функции-члены так же, как std::begin согласовывает контейнеры STL. и C-подобные массивы (я имею в виду универсальность кодирования)? В частности, мне...
159 просмотров
schedule 27.05.2022

Каков правильный способ обернуть объект в соответствующую монаду/аппликатив с помощью Range-v3?
Предположим, что при таком диапазоне std::vector<int> v{1, 4, 7, 2}; Я хочу создать другой диапазон, в котором все четные числа повторяются столько раз, сколько их значение, тогда как все нечетные числа остаются неизменными. Возможным...
31 просмотров

Почему views::reverse может преобразовать non-sized_range в size_range?
В [range.sized#1] : Концепция sized_­range уточняет диапазон с требованием, чтобы количество элементов в диапазоне можно было определить в амортизированном постоянном времени с помощью ranges​::​size . template<class T>...
133 просмотров
schedule 01.08.2022

Сохраняйте двунаправленность с помощью Ranges-v3 view::join
У меня возникли некоторые трудности с функциональным объектом view::join (удивительной) библиотеки Ranges-v3. Мой клиентский код зависит от наличия обратного метода (и был бы очень признателен итераторам с произвольным доступом) для агрегированного...
204 просмотров
schedule 23.12.2022

range-v3 и view_facade не могут моделировать ForwardRange
Этот сокращенный тестовый пример (написанный по образцу в руководстве пользователя) не компилируется #include <range/v3/all.hpp> #include <vector> using v = std::vector<int>; class rows : public ranges::view_facade<rows>...
268 просмотров
schedule 02.06.2023

диапазоны zip для записи невозможны?
Не получается следующее: #include <range/v3/view.hpp> #include <range/v3/view/zip.hpp> #include <range/v3/utility/iterator.hpp> // ... std::vector< std::tuple<int, std::string> > const data{ {1,"a"}, {2,"b"},...
232 просмотров
schedule 13.05.2023

Почему диапазоны С++ 20 не предоставляют только синтаксис канала?
Я понимаю, что этот вопрос звучит странно, так что вот немного контекста. Недавно я был разочарован, узнав, что уменьшение карты в диапазонах С++ 20 не работает, как можно было бы ожидать, т.е. const double val = data | transform(...) |...
386 просмотров
schedule 21.04.2023

Как использовать range-v3 ranges::actions::transform?
Я хочу использовать ranges-v3 для преобразования массива на месте. Я могу успешно использовать ranges::transform , но не смог использовать actions::transform . int arr[]{1, 2, 3}; auto fn = [](auto e) { return e + 1; }; ranges::transform(arr,...
152 просмотров
schedule 14.06.2023

Почему дезинфицирующее средство потока жалуется на этот код std::ranges::views::filter?
При запуске этого средства очистки потока кода жалуется на гонку данных. Почему? #include <iostream> #include <ranges> #include <thread> #include <vector> int main(){ std::vector v{11,22,33,44,55,66}; auto view =...
88 просмотров
schedule 03.08.2023

Почему `iota(0) | take(0)` не моделирует диапазоны::sized_range в С++ 20?
Рассмотрим следующий фрагмент кода: #include <ranges> auto r = std::views::iota(0) | std::views::take(0); static_assert(std::ranges::sized_range<decltype(r)>); gcc-trunk отклоняет его из-за required-expression...
260 просмотров
schedule 22.02.2023

Почему ranges::basic_istream_view::begin() не кэшируется?
Я обнаружил, что c++20 ranges::basic_istream_view немного отличается от range-v3 . Самое важное отличие состоит в том, что std::ranges::basic_istream_view не кэширует свой begin() , так что каждый begin() будет возвращать следующий...
107 просмотров
schedule 15.10.2022

Как использовать ranges::actions::insert с std::vector
Без диапазонов вставка элемента в вектор выглядит так: my_vec.insert(std::begin(my_vec), 0); Теперь я пытаюсь сделать то же самое с диапазонами: #include <range/v3/action/insert.hpp> #include <iostream> #include <vector>...
259 просмотров
schedule 09.12.2023

Использование gsl::span с range-v3
Я попробовал небольшой пример, чтобы привыкнуть к библиотекам GSL и range-v3, и мне стало интересно, как они могут работать вместе. У меня есть эта игрушка, например #include <iostream> #include <range/v3/all.hpp> using namespace...
1441 просмотров
schedule 28.12.2023

Использование range-v3 для чтения списка чисел, разделенных запятыми
Я хотел бы использовать Ranges (я использую реализацию range-v3) для чтения входного потока, который представляет собой список чисел, разделенных запятыми. Это тривиально сделать без диапазонов, но... Я подумал, что это прямой способ решить эту...
526 просмотров
schedule 31.12.2023