I have this code:
int solution(int K, const vector<int> &A) {
int count=0,size,comp=0;
unordered_map<long,long> map;
size = A.size();
if(size==0)
return 0;
for(int i=0;i<size;i++){
map.insert(A[i],i); //error here
}
for(int i=0;i<size;i++){
comp = K-A[i];
unordered_map<long,long>::const_iterator index = map.find(comp);
if(index == map.end())
continue;
else if(index->second != i){
count++;
}
}
cout << "final count: " << count << endl;
return count;
}
Can't seem to figure out why its complaining. The error look like this:
indirection requires pointer operand ('int' invalid) __table_.__insert_unique(*__first);
and
in instantiation of function template specialization 'std::__1::unordered_map, std::__1::equal_to, std::__1::allocator > >::insert' requested here map.insert(A[i],i);
Can anyone explain me whats going on?
Also using this to compile: clang++ -stdlib=libc++ -std=gnu++11 workingpairs.cpp