这段代码有什么问题?我无法从文件中读取矢量。表达式:矢量下标超出范围

What's wrong with this code? I can't read vector from file. Expression: vector subscript out of range

本文关键字:读取 文件 表达式 范围 下标 代码 段代码 什么 问题      更新时间:2023-10-16

你好,我对这个复制迭代器有问题,我不知道如何正确编写复制迭代程序。我得到的只是这个错误:"表达式:矢量下标超出范围"。我的程序总是停在std::copy行。无论如何,我的编译器不会显示任何警告和其他错误。

 ifstream fin("aFileName", ios_base::in | ios_base::binary);
 std::vector< aClass > aVector;
 std::copy(std::istream_iterator<aClass, char>(fin), 
 std::istream_iterator<aClass, char>(), aVector.begin());

也许我程序的流部分写得不好。但我没有收到任何错误,也没有收到任何警告信息。

ofstream fout("aFileName", ios_base::out | ios_base::binary);
std::copy(aVector.begin(), aVector.end(), 
std::ostream_iterator<aClass, char>(fout, " "));

我为我的英语感到抱歉。

向量可以直接从迭代器中构造。不需要使用std::copy

std::vector<aClass> aVector(std::istream_iterator<aClass>(fin), (std::istream_iterator<aClass>()));