Ranges...
От: UA Украина  
Дата: 01.11.09 21:57
Оценка:
Хай!

Необходимо подобрать структуру данных на 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++' — Кодт