在C++
中,爲什麼以下元素訪問vector
無效?爲什麼這個語法無效? vectorPointer - > [0]
void foo(std::vector<int>* vecPtr) {
int n = vecPtr->size(); // ok
int a = vecPtr->[0]; // invalid
}
相反,我們必須寫這樣一個方法調用較爲煩瑣
(*vecPtr)[0] = 1;
我想,operator[]
調用應該只是有相同的語法,我恨多餘的明星和括號。 (我知道C++有很多更嚴重的問題,但是這一次讓我很煩,每次當我必須鍵入它...)
不是答案,但爲什麼你傳遞一個指向矢量的指針,而不是通過引用傳遞矢量?這將使函數內的函數更簡單,同時明確指出調用者代碼負責矢量的生命週期。 – 2009-11-12 07:18:13