这可能是一个愚蠢的错误,但我似乎无法找到我做错了什么。
我得到的错误是no operator "=" matches these operands
。
这是我的代码......
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++) {
}
}
我在it = m1.begin()
语句中的for循环中收到错误,如果我无法遍历它,我就无法打印出地图。
答案 0 :(得分:1)
使用const迭代器:
void print_words(const map < string, int >& m1) {
cout << "Number of non-empty words: " << m1.size() << '\n';
int count = 0;
for (map<string, int>::const_iterator it = m1.cbegin(); it != m1.cend(); it++) {
}
}
答案 1 :(得分:0)
使用const_iterator
或auto
。
void print_words(const map < string, int >& m1) {
cout << "Number of non-empty words: " << m1.size() << '\n';
int count = 0;
for (auto it = m1.cbegin(); it != m1.cend(); it++) {
}
}