(原創) 如何列出一篇文章的所有單字並依size和字母順序排序? (初級) (C++)

這是我修C++ Lab題目
Read all the words from Alice_stroy1.txt using istream_iterator and write all unique words in a size order into cout using ostream_iterator. For those of the same size, write them in an alphbetic order.

 1/* 
 2(C) OOMusou 2006 http://oomusou.cnblogs.com
 3
 4Filename    : stream_iterator_alice.cpp
 5Compiler    : Visual C++ 8.0 / ISO C++
 6Description : Demo how to transform() & sort() & stable_sort()
 7Release     : 12/17/2006 1.0
 8*/

 9#include <fstream>
10#include <iterator>
11#include <vector>
12#include <algorithm>
13#include <iostream>
14#include <string>
15#include <cctype> // ispunct()
16
17using namespace std;
18
19bool sortRule(const string&const string&);
20string noPunct(const string&);
21
22int main() {
23  ifstream inFile("Alice_story1.txt");
24
25  vector<string> svec;
26  // Copy ifstream to vector
27  copy(istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(svec));
28
29  // transform vector, cutting off punctuation
30  transform(svec.begin(), svec.end(), svec.begin(), noPunct);
31  // Sort vector for unique
32  sort(svec.begin(), svec.end());
33  // Unique vector
34  vector<string>::iterator iter = unique(svec.begin(), svec.end());
35  svec.erase(iter, svec.end());
36  
37  stable_sort(svec.begin(), svec.end(), sortRule);
38  // Copy to cout
39  copy(svec.begin(), svec.end(), ostream_iterator<string>(cout,"\n"));
40  return 0;
41}

42
43<img id=Codehighlighter1_1166_1200_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1166_1200_Closed_Text.style.display='none'; Codehighlighter1_1166_1200_Open_Image.style.display='inline'; Codeh

posted on 2006-12-17 19:57  真 OO无双  阅读(1044)  评论(0编辑  收藏  举报

导航