![]() |
В STL в multimap`е есть такая функция
value_compare value_comp( ) const; //Пример... * multimap <int, int, less<int> *> m1; * multimap <int, int, less<int> >::value_compare vc1 = m1.value_comp( ); получить эту функцию *я могу, а задать свою не знаю как. |
а какой смысл имеет less<int>? а если написать
Код:
struct my_compare : public binary_function<int,int,int> { [s]Исправлено: hasherfrog, 10:17 14-09-2004[/s] |
Эта функция будет сравнивать ключ, а не значение, ассоциированное с ключом. Разве нет?
|
Я, честно говоря, сейчас далеко от хелпа нахожусь, поэтому предлагаю эвристический анализ:
Если есть map<class Key, class Value, class CompareKey>, и нет class CompareValue, тогда скорее всего используется Value::operator<(...). А если его задать? Никогда с мультимапом не работал, поэтому не понимаю, зачем он нужен. Когда мне нужно было дерево мапов, я делал так: Код:
class assoc_tree; |
Кажется я понял вопрос.
*map<class A,class B>::iterator - это pair<A,B>, есть A::operator<(). Значит: static map<class A,class B>::value_compare(const value& a, const value& b) { return !((a.first<b.first) || (b.first<a.first)) && a.second==b.second; } |
И почему это все тут так плохо стало выглядеть? Не могу нормально прочитать
|
Время: 11:18. |
Время: 11:18.
© OSzone.net 2001-