c++ - vector 中的每个元素是否都有唯一的内存地址?

标签 c++ vector

C++ 相当新。引用这段代码:

for (std::vector<int>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';

特别是在初始化迭代器和结束条件时。 vector 中的每个元素是否都有一个唯一的内存地址指向?还是迭代器与指针的工作方式不同?

最佳答案

尽管迭代器不一定是指针(尽管对于 std::vector 的大多数非调试实现将它们实现为围绕指针的薄包装),std::vectorguaranteed使其元素在内存中连续。这意味着,每个元素都有一个不同的内存位置。

关于c++ - vector 中的每个元素是否都有唯一的内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39801898/

相关文章:

c++ - 我无法将 'fill' std::vector 构造函数与 unique_ptrs 一起使用

r - R中将字符串聚合成向量

python - 如何让对象在pygame中以随机模式移动?

c++ - 如何仅从类类型推断类构造函数的参数类型

c++ - GetSystemMetrics 为我的屏幕返回错误的值

c++ - 每个类仅在 Gtest 中调用一次代码

android - 在Android Studio中制作 "glowing"矢量图像

c++ - 将大小未知的 vector 传递给函数

c++ - 在 Ubuntu 12.04 32 位上安装和编译 ZeroMQ/ZMQ/0MQ

c++ - 为什么在 C++ 中在变量后附加 <eax>