如何将链表的内容写入文件

时间:2011-05-02 15:17:44

标签: c++ file-io std

我有一个写入功能,用于将列表的内容写入文件。该列表仅包含数字。

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;'类型的右手操作数(或者没有可接受的转换)

有人可以帮忙吗?感谢

3 个答案:

答案 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)

您可能想要检查一下:

http://www.daniweb.com/software-development/cpp/threads/179828

它讨论了与你相同的问题。