У меня проблема с возвратом итератора из карты STL с использованием объекта в качестве ключа.
Код компилируется только при выполнении map.insert (), но не компилирует строку, пытающуюся использоватьитератор, возвращенный из map.insert ().
Ошибка компилятора: «ошибка: нет совпадения с оператором =»
Пожалуйста, смотрите строку с ошибками, предшествующую оператору возврата вфрагмент кода ниже.
Спасибо за любую помощь!
#include <map>
using namespace std;
class Keys {
public:
Keys(int k1, int k2) :
key1(k1), key2(k2) {
}
bool operator<(const Keys &right) const {
return (key1 < right.key1 && key2 < right.key2);
}
int key1;
int key2;
};
int main() {
std::map<Keys, int> mymap;
map<Keys,int>::iterator myitr;
mymap.insert(std::pair<Keys, int>(Keys(3, 8), 5));
myitr = mymap.insert(std::pair<Keys, int>(Keys(1, 2), 3));
return 0;
}