Вопросы по теме '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 просмотров
schedule
22.07.2022
Почему 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