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

How to cout list's values with iterator?

本文关键字:列表 获取 何使用 迭代器      更新时间:2023-10-16

问题在标题中,我过去用过这个,但现在不起作用:

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

错误如下:

"没有运算符"<<"匹配这些操作数 操作数类型为:标准::ostream <<标准::字符串"

我已经 2 年没有像这样使用 c++ 了,现在我卡在这里,使用谷歌但没有找到任何好的答案。

提前感谢您的回答!

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

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