我有这段代码:
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[A[i]] = i;
}
for(int i=0;i<size;i++){
comp = K-A[i];
unordered_map<long,long>::const_iterator index = map.find(comp); //error here
if(index == map.end())
continue;
else{
count++;
}
}
cout << "final count: " << count << endl;
return count;
}
我收到无效操作数的错误,我无法弄清楚我做错了什么。我试过切换迭代器但它也可能是我的编译器。我正在使用它来编译:
clang ++ -stdlib = libc ++ -std = gnu ++ 11 workingpairs.cpp
我的错误是:预期';'在宣言结束时 unordered_map :: const_iterator index = map.find(comp);
间接需要指针操作数('int'无效) __table _.__ insert_unique(* __第一);
实例化函数模板特化'std :: __ 1 :: unordered_map,std :: __ 1 :: equal_to, std :: __ 1 :: allocator&gt; &gt; ::插入'此处请求
任何见解/帮助都将不胜感激!
修改
我已经回去修理了错误。
答案 0 :(得分:2)
您在以下声明中错过了::
unordered_map<long,long>const_iterator
应该是:
unordered_map<long,long>::const_iterator