我有這樣的代碼:Unordered_map迭代器拋出錯誤
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;
}
我得到無效的操作數錯誤,我無法弄清楚我在做什麼錯。我試過切換迭代器,但它也可能是我的編譯器。我使用這個編譯:
鐺++ -stdlib =的libC++ -std = GNU ++ 11 workingpairs.cpp
我的錯誤:預期 ';'聲明結束 unordered_map :: const_iterator index = map.find(comp);
間接尋址需要指針操作數('int'無效) __table _.__ insert_unique(* __ first);
在函數模板專業化的實例化 '的std :: __ 1個:: unordered_map,性病:: __ 1 :: equal_to, 的std :: __ 1 ::分配器>> ::插入',這裏要求
任何有識之士/幫助將不勝感激!
編輯:
我已經回到固定的錯誤。
這是使用'汽車指數= map.find(COMP)的好地方;' – Blastfurnace
@Blastfurnace代替const_interator的?或者除了它? – jshah
我只會使用['auto'](http://en.cppreference.com/w/cpp/language/auto)關鍵字。編譯器已經知道表達式'map.find(comp)'的類型,因此它會將'index'聲明爲該類型。這些繁瑣的迭代器聲明沒有更多的錯別字。 – Blastfurnace