如何从矢量指针访问矢量元素? 在下面的代码中应该用什么来代替cout << v [0];
来打印10?访问C++的矢量指针元素
vector <int>* v; // the function parameter
v->push_back (10);
cout << v [0];
如何从矢量指针访问矢量元素? 在下面的代码中应该用什么来代替cout << v [0];
来打印10?访问C++的矢量指针元素
vector <int>* v; // the function parameter
v->push_back (10);
cout << v [0];
如果你实际上有一个指向向量,正确的方法应该是这样:
cout << (*v)[0];
但是你没有指针一个向量。你有一个未初始化的指针,并且你对push_back
的调用是未定义的行为,就像试图打印这个不存在的向量的元素一样。
是的。在我的真实代码中'v'是一个参数 –
@mrdabd如果是这样的话,引用而不是指针会更适合用作参数 – JackyZhu
您可以使用v->at(0)
或v->operator[](0)
您不应该首先使用指向矢量的指针。在堆栈上构建矢量更加合理:
那不会编译。 – Chemistpp
我从来没有找到理由使用指向矢量的指针。如果可以的话,找到一个不需要它的解决方案。 –
@zyx我正在修改现有的代码。在那里,一个指向vector的指针是一个函数参数。我不想更改整个代码。 –