我想做一个可以统计独特单词的函数。例如:
“我喜欢编写一些有用的东西。我喜欢吃。现在吃冰淇淋。”
在这种情况下,每个独特的单词:
I occurs 2
like occurs 2
...
我稍后会忽略这个案子。请帮忙
编辑:
我已经写完了这些功能。它完美地运作。谢谢你的帮助。非常感谢。
答案 0 :(得分:2)
听起来你想要使用带有键字符串和int数据的std::map。
如果地图中不存在某个项目,则添加int值为1.如果该项目确实存在于地图中,则只需将1添加到其关联值。
答案 1 :(得分:1)
我会将此视为一个家庭作业问题(希望没有人会如此轻率地提出完整的代码)。
如果您对“单词”的定义非常宽松,那么iostream输入已经将输入拆分为单词。
然后使用例如std::map
计算不同的单词。
干杯&第h。,
答案 2 :(得分:1)
这是熟悉迭代器和标准算法的绝佳机会。
有std::istream_iterator
迭代从给定流中提取的单词列表,std::cin
或文件或字符串。
有std::unique
可以帮助您实现目标。
示例程序:
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
istream_iterator<string> begin(cin), end;
vector<string> tmp;
copy(begin, end, back_inserter(tmp));
sort(tmp.begin(), tmp.end());
vector<string>::iterator it = unique(tmp.begin(), tmp.end());
cout << "Words:\n";
copy(tmp.begin(), it, ostream_iterator<string>(cout));
}
有关标准库的更多参考,请参阅http://www.cplusplus.com。