Member 13439041 Ответов: 1

Получение странной ошибки при попытке настроить итератор


Это, вероятно, глупая ошибка, но я не могу найти, что я сделал не так.

Ошибка, которую я получаю, заключается в том, что "нет оператора" = "соответствует этим опперандам".

Вот мой код...

void print_words(const map < string, int >& m1) {
    map<string, int>::iterator it;
    cout << "Number of non-empty words: " << m1.size() << '\n';
    
    int count = 0;
    for (it = m1.begin(); it != m1.end(); it++) {
    
    }
}

Я получаю ошибку в цикле for в операторе it = m1.begin (), и я не могу распечатать карту, если я не могу повторить ее, так что любая помощь будет очень признательна.

Что я уже пробовал:

Я попытался найти какие-нибудь простые опечатки или ошибки, но не смог их найти. Я настроил итератор в другом методе, и он работал совершенно нормально, так что я действительно озадачен тем, почему я получаю эту ошибку.

Richard MacCutchan

Какая ошибка?

1 Ответов

Рейтинг:
0

Shao Voon Wong

Просто использовать auto ключевое слово для определения типа переменной. Компилятор C++ выведет правильный тип для вас.

void print_words(const std::map < std::string, int >& m1) {
	std::cout << "Number of non-empty words: " << m1.size() << '\n';

	int count = 0;
	for (auto it = m1.begin(); it != m1.end(); ++it) {

	}
}