Поиск нескольких индексов с помощью Boost Multi-IndexC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Поиск нескольких индексов с помощью Boost Multi-Index

Сообщение Anonymous »

как мне ограничить поиск в boost::multi_index результатом предыдущего поиска?
В качестве примера: предположим, что у меня есть класс прямоугольника с таким внутренним значением:

Код: Выделить всё

    class MyRect
{
public:
int    width;
int    height;

double value;
}
и мне нужна структура данных такого объекта, чтобы отвечать на запросы типа «при наличии input_rectangle — какой объект MyRect содержится в этом прямоугольнике и имеет наибольшее значение?»

Я мог бы использовать «multi_index» следующим образом:

Код: Выделить всё

    struct given_value{};
struct given_width{};
struct given_height{};

typedef multi_index_container
>
> MyDataStructure;

typedef MyDataStructure::index::type MyDataStructureGivenWidth;
typedef MyDataStructureGivenWidth::iterator WidthIterator;
Если мой input_rectangle имеет ширину input_width, я мог бы использовать что-то вроде этого:

Код: Выделить всё

WidthIterator start_iter = data_object.get().begin();
WidthIterator end_iter   = data_object.get().upper_bound(input_width);
Но как мне ограничить поиск высоты coresp двумя заданными итераторами?
(И после этого найти объект с наибольшим значением в этом результате?)

Подробнее здесь: https://stackoverflow.com/questions/181 ... ulti-index
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»