字符串中统计单词个数
2015-12-27 20:49
302 查看
用到的几个小知识 :
1.字符串流是以空格作为一个字符串的结束标志,采用stringstream来提取单词。
2.为了消除重复单词,需要先将vector排序,使得重复的单词相邻出现,不先排序无法正确“删除”重复元素
3.使用unique STL算法来重排vector,使得不重复的元素出现在vector的开始部分。
代码如下:
运行结果:
1.字符串流是以空格作为一个字符串的结束标志,采用stringstream来提取单词。
2.为了消除重复单词,需要先将vector排序,使得重复的单词相邻出现,不先排序无法正确“删除”重复元素
3.使用unique STL算法来重排vector,使得不重复的元素出现在vector的开始部分。
代码如下:
#include "stdafx.h" #include <string.h> #include <algorithm> #include <vector> #include <deque> #include <functional> #include <iostream> #include <list> #include <sstream> #include <iterator> #include <functional> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { stringstream ss; string str = "the quick red fox jumps over the slow red turtle"; string strWord; vector<string> vecWords; ss.clear(); ss.str(str); while (ss >> strWord) { vecWords.push_back(strWord); strWord.clear(); } cout << "sort before:" << endl; copy(vecWords.begin(), vecWords.end(), ostream_iterator<string>(cout, " ")); cout << endl; cout << "sort after and unique before:" << endl; //从大到小排序 //sort(vecWords.begin(), vecWords.end(),greater<string>()); //默认是从小大的字典排序 sort(vecWords.begin(), vecWords.end()); copy(vecWords.begin(), vecWords.end(), ostream_iterator<string>(cout, " ")); cout << endl; vector<string> vecWordsBackup(vecWords); cout << "sort and unique afer:" << endl; unique(vecWords.begin(),vecWords.end()); copy(vecWords.begin(), vecWords.end(), ostream_iterator<string>(cout, " ")); cout << endl; cout << "sort and unique and erase after:" << endl; vecWordsBackup.erase(unique(vecWordsBackup.begin(),vecWordsBackup.end()), vecWordsBackup.end()); copy(vecWordsBackup.begin(), vecWordsBackup.end(), ostream_iterator<string>(cout, " ")); cout << endl; cout << "total words:"<<vecWordsBackup.size() <<endl; return 0; }
运行结果:
相关文章推荐
- 在命令行用 sort 进行排序
- 数据库链接字符串查询网站
- Linux Shell - 如何使用sort与uniq命令删除重复的文本行
- Flex字符串比较 还有Flex字符串操作
- Redis sort 排序命令详解
- Ruby中创建字符串的一些技巧小结
- ASP下经常用的字符串等函数参考资料
- 将字符串小写转大写并延时输出的批处理代码
- 将字符串转换成System.Drawing.Color类型的方法
- 批处理命令教学之字符串排序(sort)
- Lua源码中字符串类型的实现
- Lua性能优化技巧(四):关于字符串
- 字符串聚合函数(去除重复值)
- Ruby中的字符串编写示例
- 总结的5个C#字符串操作方法分享
- sqlserver中求字符串中汉字的个数的sql语句
- sql server字符串非空判断实现方法
- VBS的字符串及日期操作相关函数
- C#实现将千分位字符串转换成数字的方法
- jquery 删除字符串最后一个字符的方法解析