gpt4 book ai didi

c++ - 为什么vector的随机访问迭代器与指针不同会给出相同的内存地址?

转载 作者:行者123 更新时间:2023-12-01 14:42:31 25 4
gpt4 key购买 nike

vector<int>::iterator it;
for(it=v.begin();it<v.end();it++)
{
cout <<&(it)<<" ";
cout<<(*it)<<" ";
}
它输出:
0x7fff6667cdf0 7 0x7fff6667cdf0 14 0x7fff6667cdf0 15 0x7fff6667cdf0 16
注意每次地址相同,问题是为什么?

最佳答案

您将获得相同对象it的地址,然后每次都将获得相同的地址。迭代器指向的元素会更改,但是迭代器本身的地址(it是一个对象,并且具有自己的地址)不会更改。
如果您要获取指针本身的地址,那么指针变量也是如此。例如。

int* p;
size_t s;
for (p = v.data(), s = 0; s < v.size(); s++, p++)
{
cout <<&(p)<<" ";
cout<<(*p)<<" ";
}

关于c++ - 为什么vector的随机访问迭代器与指针不同会给出相同的内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62708295/

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