将文本文件读入列表,而无需使用 std::list c++ 使用直接循环

Read text file into list without using direct loop using std::list c++

本文关键字:std list c++ 循环 文件 文本 列表      更新时间:2023-10-16

我有一个程序,可以读取作业列表并删除"坏"作业,然后写入新文件。我的删除错误分配的函数工作正常。我目前用来读取文本文件的代码也可以正常工作,但通过 while 循环这样做。我怎样才能利用 std::list 库在没有 while 循环的情况下完成同样的事情。下面是我用于删除错误的分配(修剪(以及读取文本文件的代码。

void Prune()
{
    m_Assignments.remove_if([](const Assignment& assignment){ return !assignment.IsGood();});
}
void Read(std::istream& is)
{
    std::string s;
    std::getline(is, s);
    m_Name = s;
    Assignment a;
    while (is >> a)
    {
        m_Assignments.push_back(a);
    }
}
您可以使用

std::istream_iteratorstd::back_inserter将(使用std::copy(字符串从输入流复制到列表:

std::copy (
    std::istream_iterator<std::string>{is}, 
    std::istream_iterator<std::string>{}, 
    std::back_inserter(a)
);