编程珠玑第15章字符串stl set和map容器排序字符串
来源:互联网 发布:ldc数据 编辑:程序博客网 时间:2024/04/30 03:48
15.1单词
1:生成包含单词的列表,利用c++标准库提供的sets和strings
从文件中分析出单词,并排序输出
#include <iostream>#include <fstream>#include <string>#include <set>using namespace std;void TokenWordFromTxt(set<string> &S,ifstream &in){char *pch;char *psrc = NULL;for (string str; getline(in,str);)//一行一行的读取换行符号"\n"结束{cout<<str<<"\n";psrc = const_cast<char *>(str.c_str()) ;//利用string::c_str将string 转换成char*,又由于其是const的strtok不接受const,取出常量性pch = strtok(psrc,",.: ");while(pch != NULL){//printf ("---%s\n",pch);string t = pch;S.insert(t);pch = strtok(NULL,",.: \"");//c库提供的分词函数}}}void PrintSet(set<string> &S){set<string>::iterator iter;int i=0;for (iter = S.begin();iter!=S.end();++iter){i++;cout<<"--"<<i<<":"<<*iter<<endl;}}int main(){ifstream in("D:\\word.txt");//读取文件set<string> S;//利用set,stl提供的setTokenWordFromTxt(S,in);PrintSet(S);system("pause");return 0;}
需要按序输出并统计词频,利用map容器
#include <iostream>#include <fstream>#include <string>#include <map>using namespace std;void TokenWordFromTxt(map<string,int> &M,ifstream &in){char *pch;char *psrc = NULL;for (string str; getline(in,str);)//一行一行的读取换行符号"\n"结束{cout<<str<<"\n";psrc = const_cast<char *>(str.c_str()) ;//利用string::c_str将string 转换成char*,又由于其是const的strtok不接受const,取出常量性pch = strtok(psrc,",.: ");while(pch != NULL){//printf ("---%s\n",pch);string t = pch;M[t]++;pch = strtok(NULL,",.: \"");//c库提供的分词函数}}}void PrintSet(map<string,int> &M){map<string,int>::iterator iter;int i=0;for (iter = M.begin();iter!=M.end();++iter){i++;cout<<"--"<<i<<":"<<iter->first<<":"<<iter->second<<endl;}}int main(){ifstream in("D:\\word.txt");//读取文件map<string,int> M;//利用setTokenWordFromTxt(M,in);PrintSet(M);system("pause");return 0;}
参考http://ofey.me/2010/11/c%E4%BB%A5%E5%8D%95%E8%AF%8D%E4%B8%BA%E5%8D%95%E4%BD%8D%E8%AF%BB%E5%8F%96%E6%96%87%E6%9C%AC/
http://topic.csdn.net/u/20080928/13/2ac392f7-df0e-4092-8350-1af408811ab7.html string转char*
http://www.cnblogs.com/shiyangxt/archive/2008/09/08/1287139.htmlC++文件操作
- 编程珠玑第15章字符串stl set和map容器排序字符串
- 【STL源码剖析读书笔记】【第5章】关联式容器之set、map、multiset和multimap
- 【编程珠玑】第十五章 字符串
- 【编程珠玑】第十五章 字符串
- 编程珠玑-第二章(字符串旋转与排序)
- STL set map容器
- STL容器 -map和set接口介绍
- 左旋字符串——编程珠玑和STL所想到的
- <<编程珠玑>> 字符串
- 编程珠玑字符串反转
- 编程珠玑 旋转字符串
- C++STL中的set容器和map容器
- stl序列容器(map和set)的仿函数排序
- 部分排序(《编程珠玑(续)》第15章)
- 编程珠玑---读书笔记---第11章排序
- 排序(《编程珠玑》第11章)
- 堆排序(《编程珠玑》第14章)
- 堆排序(《编程珠玑》第14章)
- 《新日语基础教程》学习笔记——第九课
- LED和七段数码管限流电阻的大小计算
- 各种数据结构与算法知识入门经典
- 数据库创建 create database《一》
- Android学习--自定义PreferenceActivity
- 编程珠玑第15章字符串stl set和map容器排序字符串
- Log4Erl 使用小记
- 房价什么时候能真正降下来?
- hdu 1425 快排&模板
- 说的不错
- [p2p]UDP用打洞技术穿透NAT的原理与实现
- Type conversions with implicit and explicit operators
- 网购奢侈品尴尬
- Erlang监测系统CPU、内存、磁盘