私のクラスタイプのSTL Vectorをバイナリファイルに書き込んでいますが、istream_iteratorの何が問題なのか分かりません。
プロジェクトルールでは、ブーストのようなサードパーティライブラリと同じテキストファイル を使用できません。istream_iteratorを使ってカスタムタイプのベクトルを構築する
これはBook.hです:
class Book{
public:
Book(const std::vector<Book>& in_one_volumes,const std::string& title,
const std::string& author,const int pagecount,const int price,const std::string& date);
private:
std::vector<Book> inOneVolumes;
std::string title;
std::string author;
int pagecount;
int price;
std::string date;
};
これは、書き込み方法である:
void writeBook(std::vector<Book> books) {
std::ofstream binOut("book.bin", std::ios::binary);
std::copy(books.begin(), books.end(),
std::ostream_iterator<Book>(binOut, "\n"));
}
と私は、このように読みたい:
std::vector<Book> readBooks() {
std::vector<Book> toReturn;
std::ifstream BinIn("book.bin", std::ios::binary);
std::istream_iterator<Book> file_iter(BinIn);
std::istream_iterator<Book> end_of_stream;
std::copy(file_iter, end_of_stream, std::back_inserter(toReturn));
return toReturn;
}
Compiller氏は述べています - ブック:適切なデフォルトコンストラクタは使用できません。
大変ありがとうございました。 – Zulcom