在我最近的question之後,我試圖實現我自己設計的例子。
我有一個基本的結構,但即使閱讀this,這可能是我見過的最好的教程,我仍然很困惑。我想我也許應該轉換成Chapter._text流和增值運營商做類似試圖實現一個沒有明確容器的迭代器
string p = "";
string line;
while (getline(stream, line)) {
p += line;
}
return *p;
,但我不知道要使用其中的「樣板」的typedef是如何把所有這些東西一起。感謝很多的幫助
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Paragraph {
public:
string _text;
Paragraph (string text) {
_text = text;
}
};
class Chapter {
public:
string _text;
/* // I guess here I should do something like:
class Iterator : public iterator<input_iterator_tag, Paragraph> {
}
// OR should I be somehow delegating from istream_iterator ? */
Chapter (string txt_file) {
string line;
ifstream infile(txt_file.c_str());
if (!infile.is_open()) {
cout << "Error opening file " << txt_file << endl;
exit(0);
}
while (getline(infile, line)) {
_text += (line + "\n");
}
}
};
int main(int argc, char** argv) {
Chapter c(argv[1]);
// want to do something like:
// for (<Paragraph>::iterator pIt = c.begin(); pIt != c.end(); pIt++) {
// Paragraph p(*pIt);
// // Do something interesting with p
// }
return 0;
}
'Chapter :: Iterator'應該如何移動? 'Chapter'類中的唯一數據是成員'_text',它存儲輸入文件_sans_行尾的_entire_內容。這個主意是什麼? – 2011-06-16 01:27:49
謝謝,剛剛糾正了行結束。 – confusedCoder 2011-06-16 02:07:30
所以...爲什麼不把整個文件讀入內存? – 2011-06-16 02:12:12