gpt4 book ai didi

c++ - c++中的 vector 是指针吗?

转载 作者:行者123 更新时间:2023-12-03 10:05:16 25 4
gpt4 key购买 nike

所以假设我们有一个 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);
}
为此,我得到的输出为:
0x55c757b81300
0x7ffded6b8c70
0x7ffded6b8c70
我们可以看到 &v&v[0]有不同的地址。那么 v 是指向 vector 开头的指针吗?如果是这样,为什么我不能访问 *v ?我犯了一个错误吗?
谢谢

最佳答案

Is vector in c++ a pointer?


std::vector不是指针。它是一个类。

So is v a pointer that points to the start of the vector?


没有,但是 v ( vector 类的一个实例)确实包含一个指向数组开头的指针。

why can't I access *v?


因为一元没有过载 operator*为类(class) std::vector .

关于c++ - c++中的 vector 是指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64964038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com