我想做一个可以计算唯一单词的功能。例如:
“我喜欢编程一些有用的东西。我喜欢吃东西。现在吃冰淇淋。”
在这种情况下,每个唯一的词:
I occurs 2
like occurs 2
...
稍后我将忽略此案。请帮忙
编辑:
我已经完成了函数的编写。它完美地工作。感谢所有的帮助。非常感谢。
我想做一个可以计算唯一单词的功能。例如:
“我喜欢编程一些有用的东西。我喜欢吃东西。现在吃冰淇淋。”
在这种情况下,每个唯一的词:
I occurs 2
like occurs 2
...
稍后我将忽略此案。请帮忙
编辑:
我已经完成了函数的编写。它完美地工作。感谢所有的帮助。非常感谢。
听起来您想使用带有键字符串和 int 数据的 std::map 。
如果地图中已不存在某个项目,则将其添加为 int 值 1。如果该项目已存在于地图中,则只需将 1 添加到其关联值。
我会将其视为一个家庭作业问题(希望没有人会如此轻率地提供完整的代码)。
如果您对“单词”的定义非常松散感到满意,那么 iostream 输入已经为您将输入拆分为单词。
然后使用 egstd::map
来计算不同的单词。
干杯&hth.,
这是了解迭代器和标准算法的绝佳机会。
在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。