Хай!
Необходимо подобрать структуру данных на STL/TCL для обработки диапазонов. Диапазоны задаются в виде [a1; l1], [a2; l2], ... , [aN, lN], где aN — стартовое значение, lN — длина. aN, lN — имеют тип ulong.
Основная задача это поиск диапазонов в определенном непрерывном секторе
не перебирая все диапазоны максимально быстро.
Например:
1. [1, 2]
2. [3, 4]
3. [6, 3]
4. [7, 2]
5. [1, 10]
6. [2, 1]
7. [5, 1]
8. [4, 3]
9. [8, 2]
list<range> find(const range& input_range) const;
тогда find(range(4,3)) должна вернуть список:
2. [3, 4]
3. [6, 3]
4. [7, 2]
5. [1, 10]
7. [5, 1]
8. [4, 3]
Особенно важно то что не должно быть полного перебора.
06.11.09 19:58: Перенесено модератором из 'C/C++' — Кодт