gpt4 book ai didi

c++ - 从文件读取时使用插入迭代器

转载 作者:太空宇宙 更新时间:2023-11-04 15:53:33 30 4
gpt4 key购买 nike

在读取文件时可以使用Insert Iterators将数据放入STL容器吗?

例如:

FILE *stream;
fread(back_inserter(std::list), sizeof(int), 1, stream);

最佳答案

C++ 流与 C stdio 流不兼容。换句话说,您不能将 C++ 迭代器与 FILE*fread 一起使用。但是,如果您将 C++ std::fstream 工具与 istream_iterator 一起使用,您可以使用插入迭代器插入到 C++ 容器中。

假设您有一个输入文件“input.txt”,其中包含由空格分隔的 ASCII 文本数字,您可以执行以下操作:

#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>

int main()
{
std::ifstream ifs("input.txt");
std::vector<int> vec;
// read in the numbers from disk
std::copy(std::istream_iterator<int>(ifs), std::istream_iterator<int>(), std::back_inserter(vec));
// now output the integers
std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, "\n"));
}

关于c++ - 从文件读取时使用插入迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795326/

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