我有一个写入功能,用于将列表的内容写入文件。该列表仅包含数字。
list<int>::iterator pos;
for (pos = listStorage.begin(); pos != listStorage.end(); ++pos)
{
out << *pos << endl;
}
return out;
我在编译时遇到错误;
错误C2679:binary'=':找不到运算符,该运算符采用'std :: list&lt; _Ty&gt; :: _ Const_iterator&lt; _Secure_validation&gt;'类型的右手操作数(或者没有可接受的转换)
有人可以帮忙吗?感谢
答案 0 :(得分:2)
我很确定这是一个常见问题。您的listStorage对象是否声明为const?如果是这样,您需要将迭代器声明为
const list<int>::iterator pos;
答案 1 :(得分:2)
我使用算法而不是显式循环:
std::copy(listStorage.cbegin(), listStorage.cend(),
std::ostream_iterator<int>(out, "\n"));
这可能会阻止您看到的问题,并且顺便清理代码并且几乎肯定也会更快地运行(尽管加速来自使用"\n"
而不是endl
)。< / p>
答案 2 :(得分:0)