随手贴点代码记录一下吧,其实啥用没有

  1 #include <iostream>
  2 #include <string>
  3 #include <unordered_map>
  4 #include <fstream>
  5 #include <sstream>
  6 
  7 using namespace std;
  8 void transform(ifstream &mf, ifstream &wf);
  9 
 10 int main()
 11 {
 12     ifstream f1("d:\\m.txt");
 13     ifstream f2("d:\\t.txt");
 14     transform(f1,f2);
 15     return 0;
 16 }
 17 
 18 unordered_map<string, string> buildMap(ifstream& fs)
 19 {
 20     unordered_map<string, string> map;
 21     string line, key;
 22     while (fs >> key) {
 23         getline(fs, line);
 24         map[key] = line.substr(1);
 25     }
 26     return map;
 27 }
 28 
 29 string transword(string word, unordered_map<string,string>& map)
 30 {
 31     auto it = map.find(word);
 32     return it == map.end() ? word : map[word];
 33 }
 34 
 35 void transform(ifstream &mf, ifstream &wf)
 36 {
 37     unordered_map<string, string> map = buildMap(mf);
 38     string word, line;
 39     while (getline(wf, line)) {
 40         bool head = true;
 41         istringstream ss(line);
 42         while (ss >> word) {
 43             if (head)
 44                 head = false;
 45             else
 46                 cout << " ";
 47             cout << transword(word,map);
 48         }
 49         cout << endl;
 50     }
 51     return;
 52 }
 53 
 54 #include <iostream>
 55 #include <map>
 56 #include <string>
 57 
 58 using namespace std;
 59 int main()
 60 {
 61     multimap<string, string> m;
 62     m = { {"jia","jaa"}, {"yi","yaa"},{"bing","baa"},{"yi","bb"} ,{ "yi","yaa" } ,{ "yi","bb" } };
 63     //pair<string, string> p = { "yi","bb" };
 64     //for (auto it = m.find(p.first); (it != m.end()) && (it->first == p.first); )
 65     //{
 66     //    if (it->second == p.second)
 67     //        it = m.erase(it);
 68     //    else
 69     //        ++it;
 70     //}
 71 
 72     string name = m.begin()->first;
 73     cout << name << ":\n";
 74 
 75     for (const auto &e : m) {
 76         if (e.first == name)
 77             cout << e.second << "\t";
 78         else {
 79             name = e.first;
 80             cout << "\n" << name << ": \n";
 81             cout << e.second << "\t";
 82         }
 83     }
 84     return 0;
 85 }
 86 
 87 map<string, vector<int>> m;
 88 auto i = m.find(k);
 89 map<string, vector<int>>::iterator i = m.find(k);
 90 
 91 key min
 92 lower_bound m.begin()
 93 upper_bound m.begin()
 94 equal_range pair<m.begin() m.begin()>
 95 
 96 key max
 97 lower_bound m.end()
 98 upper_bound m.end()
 99 equal_range pair<m.end() m.end()>
100 
101 key 
102 lower_bound m.in()
103 upper_bound m.in()
104 equal_range pair<m.in() m.in()>
105 
106 #include <iostream>
107 #include <map>
108 #include <vector>
109 #include <string>
110 
111 using namespace std;
112 int main()
113 {
114     multimap<string, vector<string>> fm;
115     string x;
116     while ([&x]()->bool {
117         std::cout << "Enter 姓?" << endl;
118         return (cin >> x&&x != "q");
119     }()) {
120         std::cout << "Enter 名?" << endl;
121         string n;
122         auto it = fm.find(x);
123         it == fm.cend() ? it = fm.emplace(x,vector<string>()) : it ;
124         while (cin >> n&&n != "q")
125             it->second.push_back(n);
126         cin.clear();
127     }
128     std::cout << "**********************" << endl;
129     for (const auto &s : fm) {
130         std::cout << s.first << endl;
131         for (const auto &s : s.second) {
132             std::cout << s << " ";
133             std::cout << endl;
134         }
135     }
136     return 0;
137 }
138 
139 #include <iostream>
140 #include <unordered_map>
141 #include <string>
142 #include <algorithm>
143 
144 std::string sconvert(std::string &s)
145 {
146     auto itl = s.begin();
147     while (ispunct(*itl)) {
148         ++itl;
149     }
150     auto itr = s.rbegin();
151     while (ispunct(*itr)) {
152         ++itr;
153     }
154 
155     std::string s2(itl, itr.base());
156     for (auto &c : s2) {
157         if (isupper(c))
158             c = tolower(c);
159     }
160 
161     return s2;
162 }
163 
164 int main()
165 {
166     std::unordered_map<std::string, unsigned> wc;
167     std::string words;
168     while (std::cin >> words) {
169         words = sconvert(words);
170         //++wc[words];
171         auto re = wc.insert({ words,1 });
172         if (!re.second)
173             ++(re.first->second);
174     }
175     std::for_each(wc.cbegin(), wc.cend(), [](const std::pair<std::string, unsigned> p) 
176     {std::cout << p.first << "\t" << p.second<<std::endl; });
177     return 0;
178 }
179 
180 #include <vector>
181 #include <string>
182 #include <iostream>
183 #include <utility>
184 using namespace std;
185 int main()
186 {
187     vector<string> sv = { "ggg","ere","dfdf","444" };
188     vector<int> iv = { 1,3,4 };
189     vector<pair<string, int>> v;
190     for (int i = 0; i != sv.size() && i != iv.size(); ++i)
191         //v.push_back(make_pair(sv[i], iv[i]));
192         //v.push_back(pair<string, int>(sv[i], iv[i]));
193         v.push_back({ sv[i], iv[i] });
194     return 0;
195 }
196 
197 #include <vector>
198 #include <string>
199 #include <iostream>
200 #include <sstream>
201 #include <map>
202 #include <list>
203 using namespace std;
204 
205 int main()
206 {
207     map<string, list<int>> m;
208     string line;
209     string word;
210     int no = 1;
211     while (getline(cin, line)) {
212         istringstream is(line);
213         while (is >> word) {
214             m[word].push_back(no);
215         }
216         ++no;
217     }
218     for (const auto &e : m) {
219         cout << e.first << ":\n";
220         for (const auto &i : e.second)
221             cout << i << " ";
222         cout << endl;
223     }
224     return 0;
225 }
226 
227 #include <vector>
228 #include <string>
229 #include <iostream>
230 using namespace std;
231 
232 int main()
233 {
234     string word;
235     vector<string> v;
236     while (cin >> word) {
237         if (find(v.cbegin(), v.cend(), word) == v.cend())
238             v.push_back(word);
239     }
240     for (const auto &s : v)
241         cout << s << endl;
242     return 0;
243 }
244 
245 #include <iostream>
246 #include <map>
247 #include <vector>
248 #include <string>
249 
250 using namespace std;
251 int main()
252 {
253     map<string, vector<string>> fm;
254     string x;
255     while ([&x]()->bool {
256         cout << "Enter 姓?" << endl;
257         return (cin >> x&&x != "q");
258     }()) {
259         cout << "Enter 名?" << endl;
260         string n;
261         while (cin >> n&&n != "q")
262             fm[x].push_back(n);
263         cin.clear();
264     }
265     cout << "**********************" << endl;
266     for (const auto &s : fm) {
267         cout << s.first << endl;
268         for (const auto &s : s.second) {
269             cout << s << " ";
270             cout << endl;
271         }
272     }
273     return 0;
274 }
275 
276 #include <iostream>
277 #include <map>
278 #include <string>
279 #include <algorithm>
280 
281 std::string sconvert(std::string &s)
282 {
283     auto itl = s.begin();
284     while (ispunct(*itl)) {
285         ++itl;
286     }
287     auto itr = s.rbegin();
288     while (ispunct(*itr)) {
289         ++itr;
290     }
291 
292     std::string s2(itl, itr.base());
293     for (auto &c : s2) {
294         if (isupper(c))
295             c = tolower(c);
296     }
297 
298     return s2;
299 }
300 
301 int main()
302 {
303     std::map<std::string, unsigned> wc;
304     std::string words;
305     while (std::cin >> words) {
306         words = sconvert(words);
307         ++wc[words];
308     }
309     std::for_each(wc.cbegin(), wc.cend(), [](const std::pair<std::string, unsigned> p) 
310     {std::cout << p.first << "\t" << p.second<<std::endl; });
311     return 0;
312 }
313 
314 #include <iostream>
315 #include <list>
316 #include <string>
317 
318 using namespace std;
319 
320 int main()
321 {
322     list<string> v{ "fsfdgdsg","dfsd","sdf","ddddddd","sdf","dfsd","23","343433","23" };
323     v.sort();
324     cout << v.size() << endl;
325     v.unique();
326     cout << v.size() << endl;
327     for (auto &s : v)
328         cout << s << endl;
329 
330     return 0;
331 }
332 
333 #include <iostream>
334 #include <vector>
335 #include <list>
336 #include <iterator>
337 #include <algorithm>
338 
339 int main()
340 {
341     std::vector<int> v{ 1,2,4,0,9 };
342 
343     //10.34
344     std::ostream_iterator<int> os(std::cout, " ");
345     copy(v.rbegin(), v.rend(), os);
346     std::cout << std::endl;
347 
348 
349     //10.35
350     for (auto it = v.cend(); it != v.begin();) {
351         std::cout << *--it << " ";
352     }
353     std::cout << std::endl;
354 
355     //10.36
356     std::list<int> lt{ 1,2,4,0,9 };
357     auto it = std::find(lt.rbegin(), lt.rend(), 0);
358     std::cout << *it++ << std::endl;
359     std::cout << *it << std::endl;
360 
361     //10.37
362     std::vector<int> ivec{ 1, 2, 3, 4, 5, 6, 7,8,9,0 };
363     std::list<int> l;
364     std::reverse_copy(ivec.begin() + 3, ivec.begin() + 7, back_inserter(l));
365     for (auto it = l.cbegin(); it != l.cend();++it) {
366         std::cout << *it << " ";
367     }
368     std::cout << std::endl;
369 
370     return 0;
371 }
372 
373 #include <iostream>
374 #include <algorithm>
375 #include <vector>
376 #include <list>
377 #include <iterator>
378 
379 
380 int main()
381 {
382     std::vector<int> v1{ 1, 2, 3, 4, 5, 6, 7,8,9 };
383     std::list<int> v2;
384     std::list<int> v3;
385     std::list<int> v4;
386     std::list<int> v5;
387 
388     copy(v1.begin(), v1.end(), back_inserter(v2));
389     copy(v1.begin(), v1.end(), front_inserter(v3));
390     copy(v1.begin(), v1.end(), inserter(v4, v4.end()));
391     copy(v1.begin(), v1.end(), inserter(v5, v5.begin()));
392     for (auto i : v2)
393         std::cout << i << std::endl;
394     std::cout << std::endl;
395     for (auto i : v3)
396         std::cout << i << std::endl;
397     std::cout << std::endl;
398     for (auto i : v4)
399         std::cout << i << std::endl;
400     std::cout << std::endl;
401     for (auto i : v5)
402         std::cout << i << std::endl; 
403     return 0;
404 }
405 
406 #include <iostream>
407 #include <algorithm>
408 #include <vector>
409 #include <list>
410 #include <string>
411 #include <functional>
412 
413 using namespace std;
414 using namespace placeholders;
415 
416 bool check_size(int i, const string &s)
417 {
418     return i > s.size();
419 }
420 
421 int main()
422 {
423     vector<int> v{ 1,2,3,4,6,4,2 };
424     vector<int>::const_iterator it = find_if(v.cbegin(), v.cend(), bind(check_size, _1, "dfd"));
425     cout << *it << endl;
426     return 0;
427 }
428 
429 #include <iostream>
430 using namespace std;
431 int main()
432 {
433     int i = 10;
434 
435     auto ff=[&i]() {if (i != 0) { --i; return false; }
436     else return true; };
437     while(!ff())
438         cout << i << endl;
439 
440     return 0;
441 }
442 
443 #include <iostream>
444 #include <algorithm>
445 #include <vector>
446 #include <list>
447 #include <string>
448 
449 using namespace std;
450 
451 int main()
452 {
453     vector<string> v{ "fsfdgdsg","dfsd","sdf","ddddddd","23","343433","34" };
454     int sz = 6;
455     auto i = count_if(v.cbegin(), v.cend(), [=](const string& s) {return s.size() > sz; });
456     cout << i << endl;
457     return 0;
458 }
459 
460 #include <iostream>
461 #include <algorithm>
462 #include <vector>
463 #include <list>
464 #include <string>
465 #include <functional>
466 
467 using namespace std;
468 void bigger(vector<string> &v, vector<string>::size_type sz);
469 
470 int main()
471 {
472     vector<string> v{ "fsfdgdsg","dfsd","sdf","ddddddd","23","343433","34" };
473     bigger(v, 6);
474     return 0;
475 }
476 
477 bool check_size(const string &s, string::size_type sz)
478 {
479     return s.size() >= sz;
480 }
481 
482 void bigger(vector<string> &v, vector<string>::size_type sz)
483 {
484     sort(v.begin(), v.end());
485     auto it = unique(v.begin(), v.end());
486     v.erase(it, v.end());
487     //stable_sort(v.begin(), v.end(), [](const string &s1, const string &s2) {return s1.size() < s2.size(); });
488 
489     //auto it2 = find_if(v.begin(), v.end(), [sz](const string &s) {return s.size() >= sz; });
490     //for_each(it2, v.end(), [](const string &s) {cout << s << " "; });
491     auto it2 = stable_partition(v.begin(), v.end(), bind(check_size, placeholders::_1, sz));
492     for_each(v.begin(), it2, [](const string &s) {cout << s << " "; });
493 
494 }
495 
496 #include <iostream>
497 #include <algorithm>
498 #include <vector>
499 #include <list>
500 #include <string>
501 
502 using namespace std;
503 
504 bool foo(const string &s)
505 {
506     return 5 <= s.size();
507 }
508 
509 int main()
510 {
511     vector<string> words = { "23515","555","dfd","12","hello","fddfdfdf","ewreret","23515","555","dfd","12" };
512     vector<string>::iterator lin = partition(words.begin(), words.end(), foo);
513     for (auto it=words.begin(); it != lin; ++it)
514         cout << *it << " ";
515     cout << endl;
516     return 0;
517 }
518 
519 #include <iostream>
520 #include <algorithm>
521 #include <vector>
522 #include <list>
523 #include <string>
524 #include <numeric>
525 
526 using namespace std;
527 vector<string> elim(istream& is);
528 void print(vector<string>& v);
529 bool isShorter(const string& s1, const string& s2);
530 
531 int main()
532 {
533     vector<string> vec=elim(cin);
534     stable_sort(vec.begin(), vec.end(), isShorter);
535     print(vec);
536     return 0;
537 }
538 
539 vector<string> elim(istream& is)
540 {
541     vector<string> v;
542     string s;
543     while (is >> s)
544         v.push_back(s);
545     cout << "vector:" << v.size() << endl;
546     print(v);
547 
548     sort(v.begin(), v.end());
549     cout << "sort:" << v.size() << endl;
550     print(v);
551 
552     auto it = unique(v.begin(), v.end());
553     cout << "unique:" << v.size() << endl;
554     print(v);
555 
556     v.erase(it, v.cend());
557     cout << "erase:" << v.size() << endl;
558     print(v);
559 
560     return v;
561 }
562 
563 void print(vector<string>& v)
564 {
565     for (const auto s : v)
566         cout << s << " ";
567     cout << endl;
568     return;
569 }
570 
571 bool isShorter(const string& s1, const string& s2)
572 {
573     return s1.size() < s2.size();
574 }
575 
576 #include <iostream>
577 #include <algorithm>
578 #include <vector>
579 #include <list>
580 #include <string>
581 #include <numeric>
582 #include <memory>
583 
584 using namespace std;
585 shared_ptr<vector<string>> elim(istream& is);
586 void print(vector<string>& v);
587 bool isShorter(const string& s1, const string& s2);
588 
589 int main()
590 {
591     auto vec = elim(cin);
592     stable_sort(vec->begin(), vec->end(), isShorter);
593     print(*vec);
594     return 0;
595 }
596 
597 shared_ptr<vector<string>> elim(istream& is)
598 {
599     shared_ptr<vector<string>> v(new vector<string>);
600     string s;
601     while (is >> s)
602         v->push_back(s);
603     cout << "vector:" << v->size() << endl;
604     print(*v);
605 
606     sort(v->begin(), v->end());
607     cout << "sort:" << v->size() << endl;
608     print(*v);
609 
610     auto it = unique(v->begin(), v->end());
611     cout << "unique:" << v->size() << endl;
612     print(*v);
613 
614     v->erase(it, v->cend());
615     cout << "erase:" << v->size() << endl;
616     print(*v);
617 
618     return v;
619 }
620 
621 void print(vector<string>& v)
622 {
623     for (const auto s : v)
624         cout << s << " ";
625     cout << endl;
626     return;
627 }
628 
629 bool isShorter(const string& s1, const string& s2)
630 {
631     return s1.size() < s2.size();
632 }

 

posted @ 2017-05-14 19:02  why2cs  阅读(252)  评论(0编辑  收藏  举报