Описание тега boost-adaptors

1 ответ

Реализация адаптера Boost диапазона reversed_if

Я регулярно сталкиваюсь с ситуациями в моем коде, в которых я хотел бы выполнять итерации по диапазону в прямом или обратном порядке в зависимости от условий выполнения. Это обычно приводит к коду, подобному следующему if (reverse) { using boost::ad…
22 сен '17 в 12:34
1 ответ

C++ Boost Range Adapter Несколько векторов

Я только недавно начал использовать адаптер диапазона в boost, когда мне пришлось выполнять преобразование / функцию над вектором. Ниже приведен фрагмент одного из самых простых примеров, с которыми я столкнулся, когда начинал использовать адаптер д…
29 ноя '17 в 12:09
1 ответ

Адаптер диапазона повышения, который делает коллекцию

Я хочу написать повышающий адаптер, чтобы поместить в конец цепочки адаптеров для создания коллекции, например: set<string> s = input | filtered(...) | transformed(...) | to_set; Используя метод 3.1, я написал код ниже, который, кажется, работ…
27 июн '17 в 05:25
2 ответа

Сравнить вложенные итераторы после boost transmed()

vector<vector<int>> input{ { { 1, 2 },{ 3, 4 } } }; auto result = input | boost::adaptors::transformed([](const auto& _) {return _; }); result.begin()->begin() == result.begin()->end(); Если я запускаю это с VS2015 с _ITERATOR_…
28 июн '17 в 01:09
1 ответ

Произвольный доступ к boost::transformed_range через boost::any_range

Я пытаюсь использовать boost::any_range (с тегом произвольного доступа) в каком-то устаревшем коде, но обнаружил, что он не любит лямбды. Ошибка компиляции, кажется, жалуется на отсутствие конструктора по умолчанию для лямбда-объектов. Это ожидаемое…
25 апр '19 в 14:50
0 ответов

Неожиданное поведение boost::adapters:: преобразуется, когда функция преобразования возвращается по значению

Рассмотрим следующий фрагмент кода C++11, который является наименьшим воспроизводителем, который я мог придумать: #include <iostream> #include <boost/range/adaptor/transformed.hpp> std::vector<uint32_t> myTransform(const std::vecto…
21 авг '19 в 22:51
1 ответ

Два вопроса об использовании лямбда-выражения с boost :: adapters :: filter ()

Обратите внимание на этот некомпилируемый код: #include <boost/range/adaptors.hpp> class Stuff { public: bool var; }; class Manager { /// Get everything std::vector<Stuff*> get_all_stuff() const { return list_of_stuff; } /// Get a vector…
03 сен '20 в 23:43
1 ответ

Почему я не могу использовать boost :: adapter :: map_values ​​вне цикла на основе диапазона?

Я хочу использовать буст boost::adaptor::map_values построить вектор всех значений std::map. Возьмите этот пример кода (или попробуйте его в Godbolt) : #include <boost/range/adaptors.hpp> #include <boost/range/adaptor/map.hpp> std::vecto…
27 апр '21 в 12:18
0 ответов

Понимание композиции ленивых функций на основе диапазона

TL;DR Что не так с последним закомментированным блоком строк ниже? // headers and definitions are in the down the question int main() { std::vector<int> v{10,20,30}; using type_of_temp = std::vector<std::pair<std::vector<int>,int&g…
3 ответа

Объединение нескольких диапазонов без копирования

Я хочу объединить несколько диапазонов (эквекторов) в один диапазон, не копируя их в новый контейнер, чтобы повысить производительность. Это для повторения всего диапазона позже. #include <iostream> #include <vector> #include <boost/r…
04 мар '21 в 03:56