ファイル内の重複行削除(後優先)
Posted feedbacks - C++
素朴に
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <list>
#include <string>
#include <iostream>
#include <fstream>
#include <iterator>
#include <algorithm>
using namespace std;
void uniq(const char *fname) {
ifstream fin(fname);
if (!fin) return;
list<string> lines;
string s;
while (getline(fin, s)) {
lines.remove(s);
lines.push_back(s);
}
copy(lines.begin(), lines.end(), ostream_iterator<string>(cout, "\n"));
}
int main(void) {
uniq("hoge.txt");
return 0;
}
|


raynstard
#3422()
Rating1/1=1.00
入力されたテキストデータから重複する行をとりのぞいて、その結果を標準出力へ出力するプログラムを作成してください。
重複行の排除については、以下の仕様を満たしてください。
#4.はおまけですがある/なしで作りが変わってくると思われるので追加しました。
この問題はraynstardさんにご投稿いただきました。ご協力ありがとうございます。 ところで、素朴な実装のしかたをするとメモリ容量の数倍のサイズのすべての行が異なっているファイルを読ませたときに大変なことが起こりそうな気がしますが、そういうシビアなお題設定ではないので素朴に解いてしまって構いません。シビアなのは続編にしたいと思います。
[ reply ]