我想让我的vector vector_list没有任何重复的数据。代码如下:
int is_Tally(int num )
{
vector<int> vector_list;
for(int i=1; i< 1000;i++)
{
int item = (i*num)%10000;
if (vector_list.empty())
{
vector_list.push_back(item);
}
else
{
if (find(vector_list.begin(), vector_list.end(), item)!=vector_list.end())
{
vector_list.push_back(item);
if (vector_list.size()>15)
{
return 0;
}
}
}
}
return vector_list.size();
我执行代码时遇到错误。
error: no matching function for call to 'find(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, int&)
有什么建议吗?感谢。
答案 0 :(得分:6)
答案 1 :(得分:1)
if (find(vector_list.begin(), vector_list.end(), item)!=vector_list.end())
这是在抱怨这行代码。显然你的find()函数(这里没有提供)与你调用它的方式不匹配。
确保find函数有两个参数用于向量迭代器,后跟一个int的参数,因为这是你在函数调用中传递的内容。
另请注意:确保find函数返回向量迭代器,因为这是使用!=
进行比较的
答案 2 :(得分:1)
尝试包含算法标题。我认为那应该有效。