for循環我有以下過通過按引用給const矢量這就是通過,該迭代C++矢量迭代碼不編譯,當矢量作爲參考給const
void PrintVector(const vector<string>& myVector) {
for(vector<string>::iterator itr = myVector.begin(); itr != myVector.end(); ++itr)
someFunctionThatTakesAPassByReferenceToConstParameter(itr);
}
將迭代器itr
作爲參考傳遞給函數someFunctionThatTakesAPassByReferenceToConstParameter()
。因此,保證這個函數不會改變迭代器對象。即使這是有保證的,爲什麼代碼不能編譯?
編輯:我知道我可以使用const_iterator。但我想知道爲什麼這不編譯。
':: const_iterator' ... – 2013-07-01 17:56:05
_I我知道我可以使用const_iterator._這不是你可以,你只需要!正如Naveen指出的那樣通過'* itr'。 –
-1這麼多答案,都涵蓋了你發佈的代碼中的各種缺陷,而且沒有一個值得接受?我會說@ JohnDibling的答案完全覆蓋了它。 –