這是我修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
4
Filename : stream_iterator_alice.cpp
5
Compiler : Visual C++ 8.0 / ISO C++
6
Description : Demo how to transform() & sort() & stable_sort()
7
Release : 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
17
using namespace std;
18
19
bool sortRule(const string&, const string&);
20
string noPunct(const string&);
21
22
int 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

/**//* 2
(C) OOMusou 2006 http://oomusou.cnblogs.com3

4
Filename : stream_iterator_alice.cpp5
Compiler : Visual C++ 8.0 / ISO C++6
Description : Demo how to transform() & sort() & stable_sort()7
Release : 12/17/2006 1.08
*/9
#include <fstream>10
#include <iterator>11
#include <vector>12
#include <algorithm>13
#include <iostream>14
#include <string>15
#include <cctype> // ispunct()16

17
using namespace std;18

19
bool sortRule(const string&, const string&);20
string noPunct(const string&);21

22

int main()
{23
ifstream inFile("Alice_story1.txt");24

25
vector<string> svec;26
// Copy ifstream to vector27
copy(istream_iterator<string>(inFile), istream_iterator<string>(), back_inserter(svec));28

29
// transform vector, cutting off punctuation30
transform(svec.begin(), svec.end(), svec.begin(), noPunct);31
// Sort vector for unique32
sort(svec.begin(), svec.end());33
// Unique vector34
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 cout39
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
本博客介绍了一个使用C++处理文本文件的方法。通过使用istream_iterator从Alice_story1.txt中读取所有单词,去除标点符号,利用sort()和unique()函数去除重复单词,并按大小和字母顺序排序,最后将结果输出到控制台。
171万+

被折叠的 条评论
为什么被折叠?



