如何从向量指针访问向量的元素?
在下面的代码中应该使用什么代替cout << v [0];
来打印10?
vector <int>* v; // the function parameter
v->push_back (10);
cout << v [0];
答案 0 :(得分:7)
如果你实际上有一个指向矢量的指针,那么正确的方法是:
cout << (*v)[0];
但是你没有指向矢量的指针。你有一个未初始化的指针,你对push_back
的调用是未定义的行为,就像试图打印这个不存在的向量的元素一样。
答案 1 :(得分:1)
您可以使用v->at(0)
或v->operator[](0)
答案 2 :(得分:0)
您不应该首先使用指向矢量的指针。在堆栈上构造向量更合理:
std::vector<int> v;
v.push_back(10);
std::cout << v[0];