在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