|
(link list ilen saçmalamaca) txt dosyamızdaki tüm veriler önce link listimize geçirilir ardından sıraya sokulur ardından aynı olanlar silinir sonra her iteratordeki abuk sabuk karakterler silinir sonra tekrar sırala tekrar sil yaz out.txt ye yeah 6 mb lık veriyi 6 sn de işlemektedir afferim ona diorum p4 3ghz ilen.
#include <string> #include <iostream> #include <fstream> #include <algorithm> #include <list> #include <windows.h>
using namespace std;
int main() { long int before = GetTickCount();
list<string>::iterator it; list<string> sL; ifstream in("in.txt"); ofstream outL("out.txt"); string word; char ignore[] = { '`', '!', '’', '-', '_', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '@', '#', '$', '%', '^', '&', '*', '(', ')', '~', '"', ',', '.', '=', '/', '<', '>', '[', ']', '{', '}', ';', ':', '?', '|', '+', '*', "'" };
while(in >> word){ transform(word.begin(), word.end(), word.begin(), tolower); sL.push_back(word); } sL.sort(); sL.unique(); for ( it = sL.begin() ; it != sL.end() ; it++ ) { for (int i=0; i < 43; i++) it._Ptr->_Myval.erase( remove(it._Ptr->_Myval.begin(),it._Ptr-> _Myval.end(), ignore[i]) , it._Ptr->_Myval.end() ); }
sL.sort(); sL.unique(); for ( it = sL.begin() ; it != sL.end() ; it++ ) outL << *it << endl;
long int after = GetTickCount(); cout << "Elapsed Time "<< (after-before) << " ms\n";
system("PAUSE"); return 0; }
|