Ris*_*ian 4 c++ pointers vector
所以假设我们有一个向量 v 并且我将它传递给函数 f
void f(vector<int> &v) {
cout<<&v;
}
int main() {
vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);
cout<<&v[0]<<"\n"<<&v<<"\n";
f(v);
}
Run Code Online (Sandbox Code Playgroud)
为此,我得到的输出为:
0x55c757b81300
0x7ffded6b8c70
0x7ffded6b8c70
Run Code Online (Sandbox Code Playgroud)
我们可以看到,&v并且&v[0]有不同的地址。那么 va 指针指向向量的开头吗?如果是这样,为什么我无法访问*v?我犯了一个错误吗?
谢谢
eer*_*ika 11
c++中的向量是指针吗?
号std::vector不是指针。它是一个类。
那么 va 指针指向向量的开头吗?
不,但是v(向量类的一个实例)确实包含一个指向数组开头的指针。
为什么我不能访问
*v?
因为operator*类的一元没有重载std::vector。