当我每次写作时都使用矢量时
vector<int>::iterator itr;
但是当我想用原始指针访问地址时
int *ptr=v.begin();
如果我想用迭代器和原始指针变量打印地址,它不会打印任何内容并显示错误,它不会打印任何地址但如果我们想像这样使用 v[i] 访问它工作正常我的问题是为什么这个原始指针不持有这个容器初学者地址
据我了解,您想要一个指向向量中第一个元素的指针:
vector<int>::iterator itr = v.begin();
// if(itr != v.end()) // should be involved
int* ptr = &*itr;
要么:
// if(v.size()) // should be involved
int* ptr = &v[0]; // all C++ versions
int* ptr = v.data(); // C++11 and later
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句