Задача простая (на превый взгляд):
как наиболее быстро найти в std::map<int,int> наименьший неиспользованный ключ в диапазоне [A,B )
(B - не включено в диапазон)
class mapKeyComp2: public std::binary_function<std::pair<int,int>, std::pair<int,int>, bool> {
public:
bool operator()(std::pair<int,int> leftSide, std::pair<int,int> rightSide) const
{
return leftSide.first < rightSide.first;
}
};
.....
std::map<int,int>::iterator it19 = std::lower_bound(map_.begin(), map_.end(),
std::pair<int,int>(19,0), mapKeyComp2() );