Chinaunix

标题: istream_iterator主要使用在什么方面 [打印本页]

作者: gooderfeng    时间: 2006-11-23 16:24
标题: istream_iterator主要使用在什么方面
看所有的书都说这个东西,但是重来没有用过,是否有人用过,帮助讲解一下,如何使用,使用在那些方面,有什么好处。非常感谢
作者: okmmno1    时间: 2006-11-23 17:58
这两个迭代器 非常重要!
-_-!
不过重要的应用特性我还都没有用过,hehe;
istream_iterator<int> iter(cin),iter_end;
copy(iter,iter_end,inserter(id,id.begin());
作者: okmmno1    时间: 2006-11-23 18:00
stl源码剖析里面好像说过一句话  
有了这个东西  "范性的世界无限宽广了!~~"
不过,用的时候总感觉不踏实,因为......效率;
作者: gooderfeng    时间: 2006-11-23 19:14
一般的应用程序里面很少见到,如果说stl的源码里面用到,还没见过,能够给个合适的例子。
作者: converse    时间: 2006-11-23 19:17
C++的流我几乎没有用过,除了cout和cin以外...!!-_-
作者: gooderfeng    时间: 2006-11-23 19:27
我总看到那个东西,还用不上,也不明白它的价值很郁闷,还有就是异常,看别人的代码,太少看到了。
真的是没人用啊。
作者: converse    时间: 2006-11-23 19:34
我感觉的国内的C++状况是:能用好STL的已经不多了,而且这部分人可以胜任大部分国内的C++开发工作,至于C++的一些高级特性如什么boost之类似乎没有用途.
作者: okmmno1    时间: 2006-11-23 21:07
呃……
其实,只是依靠自己在计算机上做练习就把STL学好,不是很现实,
真本事都是在实际项目中得到的。

正如大版说的,国内真正吧STL用的好的很少,于是,想在项目中学到这些东西也很渺茫……
不过,看你的公司水平了。

楼上想要具体例子的话  源码剖析里面400多页的地方有,是具体的应用,剩下的就靠你自己try了,
至少这本书对这几个迭代器的评价还是很高的。

另外,我觉得boost还是有很不错的东西的。。呵呵。比如regex。
作者: okmmno1    时间: 2006-11-23 21:47
刚看到一段程序  。个人认为写的很不错:统计英文文章里面单词的频率:


  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. #include <fstream>
  5. #include <iterator>
  6. #include <stdlib.h>

  7. using namespace std;

  8. ifstream input("XXXX");
  9. map<string, int> s_num;
  10. for (istream_iterator<string> iter(input); iter != istream_iterator<string>(); ++iter)
  11. {
  12. s_num[*iter] += 1;
  13. }
  14. multimap<int, string> num_s;
  15. for (map<string, int>::iterator iter = s_num.begin(); iter != s_num.end(); ++iter)
  16. {
  17. num_s.insert(make_pair(iter->second, iter->first));
  18. }
  19. int i = 0;
  20. for (multimap<int, string>::reverse_iterator iter = num_s.rbegin(); (i < 20) && (iter != num_s.rend()); ++i, ++iter)
  21. {
  22. cout << iter->second << " " << iter->first << "\r\n";
  23. }
复制代码

作者: gooderfeng    时间: 2006-11-24 08:40
了解了,现在主要是正在看c++标准库,里面一些东西想弄明白一些,确实有不少东西只是见过,没用过。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2