2013-08-29 154 views
0

如何从矢量指针访问矢量元素? 在下面的代码中应该用什么来代替cout << v [0];来打印10?访问C++的矢量指针元素

vector <int>* v; // the function parameter 
v->push_back (10); 
cout << v [0]; 
+0

那不会编译。 – Chemistpp

+0

我从来没有找到理由使用指向矢量的指针。如果可以的话,找到一个不需要它的解决方案。 –

+0

@zyx我正在修改现有的代码。在那里,一个指向vector的指针是一个函数参数。我不想更改整个代码。 –

回答

7

如果你实际上有一个指向向量,正确的方法应该是这样:

cout << (*v)[0]; 

但是你没有指针一个向量。你有一个未初始化的指针,并且你对push_back的调用是未定义的行为,就像试图打印这个不存在的向量的元素一样。

+0

是的。在我的真实代码中'v'是一个参数 –

+0

@mrdabd如果是这样的话,引用而不是指针会更适合用作参数 – JackyZhu

1

您可以使用v->at(0)v->operator[](0)

0

您不应该首先使用指向矢量的指针。在堆栈上构建矢量更加合理:

​​