gpt4 book ai didi

c++ - 使用std::list c++在不使用直接循环的情况下将文本文件读入列表

转载 作者:行者123 更新时间:2023-11-28 04:49:01 24 4
gpt4 key购买 nike

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

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)
);

关于c++ - 使用std::list c++在不使用直接循环的情况下将文本文件读入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48594058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com