Elimizde ingilizce’deki tüm sözcükleri içeren bir ASCII metin dosyası var. Dosyanın ismi dict.txt. Dosyamızın her satırında bir sözcük yer alıyor ve toplamda 354.935 sözcüğümüz var. Bu çalışmamızın amacı ingilizce sözlükte yer alan ilginç sözcükleri bulmak. Bu dosyayı yakında bu blogdan indirebileceksiniz.
Birinci çalışmamız ingilizcedeki en uzun 100 sözcüğü bulmak olsun:
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 |
#include <fstream> #include <iostream> #include <vector> #include <string> #include <algorithm> #include <iomanip> using namespace std; int main() { ifstream ifs("dict.txt"); if (!ifs) { cerr << "dosya acilamadi" << endl; return 1; } vector<string> svec{ istream_iterator<string>{ifs}, istream_iterator<string>{} }; partial_sort(svec.begin(), svec.begin() + 100, svec.end(), [](const string &r1, const string &r2){return r1.size() > r2.size(); }); cout << left; for (size_t i = 0; i < 100; ++i) { cout << setw(35) << svec[i] << svec[i].length() << "\n"; } return 0; } |
1 |
vector<string> svec{ istream_iterator<string>{ifs}, istream_iterator<string>{} }; |
1 2 |
partial_sort(svec.begin(), svec.begin() + 100, svec.end(), [](const string &r1, const string &r2){return r1.size() > r2.size(); }) |