map с допуском по реальному ключу
От: Sasparella США  
Дата: 22.09.04 18:32
Оценка:
Нужно реализоавать словарь, ключ в котором — сугубо положительное вещественное число, с некоторым допуском — скажем, diff = 0.1. Что имеется в виду —
если в мепе есть ключ 12.3 то по запросам от 12.2. до 12.4 будет находится именно этот элемент, соответсвующий ключу 12.3, то есть

XitriyMap m;
m[12.2]=9;
ASSERT(m[12.24]==9);


Мне кажется, что так как для сравнения в мепе используется ф-я типа

equal =!less(a,b) && !less (b,a);


основаная на передаваемом бинарном предикате less<T>,

то если реализовать

bool BinaryLess(float a, float b)
{
   static const float difference = .1;
   return (a+diff < b); 
}

std::map<float,..., BinaryLess> frvcbl;



то будет работать как задумано.

Я прав? Нет ли здесь подвоха?


Саша.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.