Я хотел бы использовать итераторы из списка STL в качестве ключей на карте. Например:
с использованием пространства имен std;
list<int> l
;
map<list<int>::const_iterator, int> t;
int main (int argv, char * argc) {
l.push_back (1);
t [l.begin ()] = 5;
}
Однако итераторам списка не определен оператор сравнения (в отличие от итераторов произвольного доступа), поэтому компиляция приведенного выше кода приводит к ошибке:
/ usr / include / c ++ / 4.2.1 / bits / stl_function.h: 227: ошибка: нет совпадения для оператора in в __x
Если список изменяется на вектор, карта вектора const_iterators компилируется нормально.
Как правильно определить оператор