【发布时间】:2012-03-08 16:22:33
【问题描述】:
当使用此代码删除重复项时,我得到二进制表达式错误的无效操作数。我认为这归结为使用结构的向量,但我不确定我是否已经用谷歌搜索了我的问题,并且我一遍又一遍地得到这段代码,这表明这段代码是正确的,但它对我不起作用。
std::sort(vec.begin(), vec.end());
vec.erase(std::unique(vec.begin(), vec.end()), vec.end());
任何帮助将不胜感激。
编辑:
fileSize = textFile.size();
vector<wordFrequency> words (fileSize);
int index = 0;
for(int i = 0; i <= fileSize - 1; i++)
{
for(int j = 0; j < fileSize - 1; j++)
{
if(string::npos != textFile[i].find(textFile[j]))
{
words[i].Word = textFile[i];
words[i].Times = index++;
}
}
index = 0;
}
sort(words.begin(), words.end());
words.erase(unique(words.begin(), words.end(), words.end()));
【问题讨论】:
-
您是否为向量中的项目定义了
operator<? -
请不要让我们猜测
vec的类型。请创建最短的完整程序来演示您的错误并将其发布到您的问题中。 sscce.org -
@Rob 我已经添加了我的程序的最小部分。
-
@bobthemac:它很小(很棒)但也不完整。
wordFrequency是什么bool operator<(wordFrequency const&, wordFrequency const&)看起来像什么?我们不能用半个问题给出有意义的答案。哦,exact 错误信息是什么? -
请不要为了单一分类而介绍
operator<。仅在对类型真正有意义时才引入它。