c++ - 了解 std::end() 的行为和 vector 中的内存分配

标签 c++ oop vector stl iterator

std::end() 到底指向什么?使用 std::vector 时,它是否分配额外的内存来容纳元素的结束位置?

最佳答案

调用std::end()std::vector 上仅返回 vector 的 end迭代器,它指向 vector 数组最后一个元素之外的内存地址:

image

如果 vector size小于其capacity ,将会为这个结束后 1 的位置分配内存,但无论如何,结束位置的内容是未定义的,并且永远不应该被访问。

关于c++ - 了解 std::end() 的行为和 vector 中的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76933111/

相关文章:

javascript - 返回函数预计不会发生对象突变

php - 如何修复此路由器类以包含 404 错误/页面?

vector - 如何计算值向量的差值的最小值?

每个 C++,从 vector 元素中提取

c++ - 'decltype' 的参数不正确

c++ - 测试适用于成员变量的成员函数

c++ - 自动更正,自动完成功能

c++ - 如何通过预处理器定义使类可用于结构?

actionscript-3 - AS3 从父类的类中删除数组中的所有子项

c++ - 所有排列 C++ 与 vector <int> 和回溯