提前抱歉,我发布了一张图片,但我还没有代表:(第1行的错误说“未知的解析器错误”重复超过四行,并且从ReadFile类行开始几乎每行都有一个错误说“意外令牌”。我已经包含了文件夹中的所有自定义头文件,方法是右键单击项目下的“header”并添加包含它们的文件夹,或者右键单击项目名称本身并在那里添加文件夹。还包括包含标题的私有片段的私人文件夹。任何人有任何想法吗?这是斯坦福的免费讲座集,你必须下载并安装他们的自定义标题..教师使用Visual c + +,但那不应该意味着我不能使用Netbeans的文件,他们只是.h文件..?
#include "genlib.h"
#include <iostream>
#include <fstream>
#include "map.h"
#include "random.h"
#include "set.h"
using namespace std;
void ReadFile(ifstream &in, Map<int> &m)
{
while (true) {
string word;
in >> word;
if (in.fail()) break;
if (m.containsKey(word))
m[word]++;
else
m[word] = 1;
}
Map<int>::Iterator itr = m.iterator();
string max;
int maxCount = 0;
while (itr.hasNext()) {
string key = itr.next();
if (m[key] > maxCount) {
max = key;
maxCount = m[key];
}
}
cout << "Max is " << max << " = " << maxCount << endl;
}
void TestRandom()
{
Set<int> seen;
while (true) {
int num = RandomInteger(1, 100);
if (seen.contains(num)) break;
seen.add(num);
}
Set<int>::Iterator itr = seen.iterator();
while (itr.hasNext())
cout << itr.next() << endl;
}
int main()
{
ifstream in("burgh.txt");
Map<int> counts;
ReadFile(in, counts);
Randomize();
TestRandom();
return 0;
}
答案 0 :(得分:0)
在ReadFile函数中(在多个地方),您尝试使用字符串作为Map的键,其中整数作为键。
string word;
in >> word;
if (in.fail()) break;
if (m.containsKey(word))
m[word]++;
为了正确执行此操作,您需要将字符串输入解析为整数。这可以通过stoi函数或类似函数来实现。
实施例
string word;
in >> word;
int iKey = stoi(word, nullptr);
if (in.fail()) break;
if (m.containsKey(iKey))
m[iKey]++;