Я пытаюсь получить доступ к стоимости и ключ с использованием * итератора, как показано ниже:реализация контейнера карты с геттер итератора
for (Map<K, V>::iterator it = map.begin(); it != map.end(); ++it) {
V& value = (*it).getValue(); // or*it.getValue();
}
он не работает, даже в меню падения ничего (работает с затмением не показывать). единственный способ заставить его работать, чтобы сделать следующее:
Node<K, V>& node = *it;
V& value = node.getValue();
У меня есть и сопзИ и ни константные Геттеры, также в * обратном операторе ссылка на узел.
Редактировать:
Я реализую свой собственный код карты.
редактировать 2 Я понял это, мой оператор * возвращал указатель и я думал, что это возвращает &. спасибо всем
Какая ошибка у вас возникла? BTW - это параметры шаблона K и V? – juanchopanza
Похоже, вы не используете 'std :: map', а какой-то другой контейнер. Вам нужно будет опубликовать код, чтобы показать, как выглядит итератор контейнера. – Sean
Что такое «Карта»? Это псевдоним для 'std :: map', или что-то нестандартное? –