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