将文本文件读入列表,而无需使用 std::list c++ 使用直接循环
Read text file into list without using direct loop using std::list c++
我有一个程序,可以读取作业列表并删除"坏"作业,然后写入新文件。我的删除错误分配的函数工作正常。我目前用来读取文本文件的代码也可以正常工作,但通过 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_iterator
和std::back_inserter
将(使用std::copy
(字符串从输入流复制到列表:
std::copy (
std::istream_iterator<std::string>{is},
std::istream_iterator<std::string>{},
std::back_inserter(a)
);
相关文章:
- 使用std::multimap迭代器创建std::list
- 使用"std::unordereded_map"映射到"std::list"对象
- 使用std::list创建循环链表
- 如果 KEY 是 std::list 或 std::vector 而不是值,那么 std::map 的默认行为是什么?
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 包含 std::list 的结构体的 C++ 初始化
- 在基于范围的 for 循环期间插入 std::list 的后面
- 循环挂起迭代的 std::擦除 on std::list
- 如何增加以前由新运算符分配的 C++ std::list 数组的大小?
- std::list 中的迭代器感知对象
- std::list 可以用于简单的无锁队列吗?
- 使用 std::list 存储顶点并使用 SFML 绘制它们
- C++11 基于范围的 for 循环,用于 std::list
- 向 std::list 添加新元素的复杂性
- 如何使用 std::list 模板的迭代器擦除
- 将元素添加到 std::list 在多线程中,无需 C++ 互斥锁
- 如何将文件的一部分读取到std::list缓冲区?
- 抽象和派生与std::list相结合
- std::list 的两个 insert() 方法签名之间的实现差异
- C++:我可以重用/移动 std::list 元素从中间到结尾吗?