【发布时间】:2016-09-27 16:31:20
【问题描述】:
我目前正在开发一个程序,该程序将接收文本文件并将每个单词组织成它自己的值以及它出现的次数。我一直在玩这个想法很长一段时间,并且无法超越基本实现。我对使用 MAP 和 SET 非常陌生,我知道 SET 只会保存每个单词的一次出现,并且 MAP 可以使用单词本身作为键,它的数据类型可以是它重复的次数。但是,要做到这一点,我很失落。我的代码不完整,我被卡住了,我试图做的是找出一种方法将每个单词存储在 SET 中,并立即将单词映射到一个映射的原始值,但是,如果一个单词重复,那么集合会抓住它并将 MAP KEY - VALUE 对增加一。
例子:
#include <iostream>
#include <vector>
#include <map>
#include <set>
using namespace std;
int main()
{
map<string, int> testMap;
vector<string> text;
set<string> words;
int datVal = 1;
text.push_back("Hi");
text.push_back("Hi");
text.push_back("Bye");
text.push_back("test");
text.push_back("ice");
text.push_back("pie");
text.push_back("pie");
text.push_back("cheese");
text.push_back("wampum");
for(int x = 0; x < text.size(); x++)
{
words.insert(text[x]);
if(
testMap.insert(make_pair(text[x], datVal)).second;
}
如果有人可以帮助我,我将不胜感激!我什至不明白如何检查设置并增加链接到地图的值,我还有很多东西要学。感谢您的宝贵时间!
【问题讨论】:
标签: c++ dictionary iterator set