Tengo algunos registros, el patrón es (id, longitud, ancho);
Quiero buscar como "longitud en [10,20) y anchura en (20,30]";
Si uso una base de datos relacional, podría crear índices de varias columnas en longitud y anchura.
Necesito hacer ese trabajo en la memoria. Veo Boost Multi-Index support Compuesto clave; Pero encontré que parece que solo es compatible con la búsqueda de igual alcance, que le gusta "longitud == 20 y ancho == 20".
¿Dosificar la consulta de soporte Multi-Index como [10,20) y el ancho en (20,30)?
Parece que multimap <longitud, multimap <ancho, id>> podría cumplir mi requisito, pero es un poco complejo para la codificación.
Respuestas
1 para la respuesta № 1Me temo que Boost.MultiIndex no es bueno para esto; tenga en cuenta que cada índice (con o sin una clave compuesta) induce una lineal Ordena sobre los elementos, mientras que aquí quieres una disposición 2D. Sugiero echar un vistazo a Boost.Geometry "s Arboles r.