如何使用迭代器来列出列表的值?

时间:2016-01-26 08:32:53

标签: c++ list iterator

标题中的问题是,我已经尝试了这个,因为我过去使用它但现在不起作用:

for (list<string>::iterator it = list1.begin(); it != list1.end(); it++){
    cout << *it;
}

错误如下:

“no operator”&lt;&lt;“匹配这些操作数             操作数类型是:std :: ostream&lt;&lt; std :: string“

我没有使用c ++ 2年,现在我被困在这里,使用谷歌但没有找到任何好的答案。

提前感谢您的回答!

2 个答案:

答案 0 :(得分:2)

您忘记添加标题,很可能是<string>(或者更不可能是<iostream><list>。所有这三个都是必需的,您可能不依赖任何标准库头,包括另一个。

答案 1 :(得分:1)

operator<<实际上找不到std::string的{​​{1}}重载,但在<iostream>中找不到。该标准不限制库实现包含任意头,因此大多数实现将在链的某处包含<string>。如果您没有,则需要手动添加<string>