错误:在符号之前预期的主要表达式 - 标记
我不完全确定这里发生了什么,因为我的朋友也正在研究这个项目似乎无法分辨出什么是错的。任何有关此错误的帮助将不胜感激。错误所指的行有一条注释指出它。我正试图通过下面的代码将一对插入到地图中。
theCandidates
是map<string, class>
,在这种情况下,该类称为候选。
void TallyVotes::initialize(Scanner& inStream)
{
numberOfLosers = 0;
numberOfVotes = boost::lexical_cast<int>(inStream.next());
numberOfCandidates = boost::lexical_cast<int>(inStream.next());
for(int i = 0; i < numberOfVotes ; i++)
{
for(int j = 0; j < numberOfCandidates ; i++)
{
theVotes[i][j] = inStream.next();
cand = theVotes[i][j];
if(i == 0)
{
theCandidates.insert(make_pair(cand, Candidate));//ERROR ON THIS LINE
}
}
}
} // void TallyVotes::initialize(Scanner& inStream)
答案 0 :(得分:2)
make_pair
函数将两个值作为参数,而不是值和类型。
尝试例如。
make_pair(cand, Candidate())
// Note parentheses ^^
表达式Candidate()
创建一个临时对象,然后将其复制到std::map
。