在编译程序时会弹出一个错误,我无法弄清楚它是什么:"没有匹配函数调用_distance_fw(int&,int&)"。 在这个问题中,我试图检查两个数组在它们包含的值方面是否相等。
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
unordered_map<int,int> bucket;
unordered_map<int,int>::const_iterator it;
int main()
{
int T,N,val,counter;
int def=1;
bool bug;
scanf("%d",&T);
{
for(int i=0;i<T;i++)
{
scanf("%d",&N); //N is the size of array
counter=N;
bucket.erase(bucket.begin(),bucket.end());
for(int j=0;j<2;j++)
//scanning the first array
{
while(counter>0)
{
if(j==0)
{
scanf("%d",&val);
it=bucket.find(val);
if(it==bucket.end())
{
bucket.insert(val,def);
}
else
{
bucket[val]++;
}
}
else
{
scanf("%d",&val);
it=bucket.find(val);
if(it!=bucket.end())
{
bucket[val]--;
}
else
{
bug=true;
}
}
counter--;
}
if(bug==true)
{
cout<<"0"<<endl;
}
else
{
for(it=bucket.begin();it!=bucket.end();it++)
{
if(it->second!=0)
{
cout<<"0"<<endl;bug=true;break;
}
}
if(bug==false)
{
cout<<"1"<<endl;
}
}
}
}
}
}
答案 0 :(得分:0)
您只需要更改
bucket.insert(val,def)
分为:
bucket.insert({val,def})
std::unordered_map::insert需要std::unordered_map::value_type
,在这种情况下为std::pair<const int int>
。
请更好地格式化您的代码。