The C++ Programming Language第三章

1、一般来说,将一个名字空间中的所有名字统统倾倒进全局名字空间里,并不是一种好的做法。P41

2、迭代器和I/O P53

  要做出一个ostream_iterator,我们需要描述被使用的将是哪个流,还要描述写入其中的对象的类型。例如,我们可以定义一个引用了标准输出流cout的迭代器:ostream_iterator<string> oo(cout);

  一个istream_iterator就是某种东西,它使我们可以像从容器独处一样从输入流中读出:

istream_iterator<string> ii(cin);

 

举例:P54

 1 #include "stdafx.h"
 2 
 3 #include <iostream>
 4 #include <fstream>
 5 #include <algorithm>
 6 #include <string>
 7 #include <iterator>
 8 #include <vector>
 9 
10 using namespace std;
11 int _tmain(int argc, _TCHAR* argv[])
12 {
13 
14     string from;
15     string to;
16     cin >> from >> to;
17 
18     ifstream is(from.c_str());
19     istream_iterator<string> ii(is);
20     istream_iterator<string> eos;
21 
22     vector<string> b(ii, eos);
23     sort(b.begin(), b.end());
24 
25     ofstream os(to.c_str());
26     ostream_iterator<string> oo(os, "\n");
27 
28     unique_copy(b.begin(), b.end(), oo);
29 
30 
31 
32     return !is.eof() | !os;
33 }

3、忠告

  当你遇到一个选择时,应该优先选择标准库而不是其他的库。

  不要认为标准库对于任何事情都是最理想的。

  如果向一个容器中添加一个元素,用push_back()或back_inserter()。

  在main()中捕捉公共的异常。

 

~~end~~

!!欢迎添加!!

 

 

 

posted @ 2012-04-17 21:39  ziyoudefeng  阅读(212)  评论(0编辑  收藏  举报