前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

vector的底层是如何实现的?#代码(vector的原理)

qiguaw 2024-10-29 15:25:16 资源文章 19 ℃ 0 评论

在C++中vector是一种动态数组,它可以在运行时分配和释放内存,也可以在运行时动态地改变大小。vector可以自动处理内存管理,而且它的性能通常比手动管理内存的数组要好。

可以这样创建一个vector:std::vector<int> interview,然后可以通过下标来访问vector中的元素。vector内部使用一个连续的内存空间来存储元素,这个内存空间通常通过动态分配获得。在初始化时vector可能不分配任何内存空间,或者根据传入的参数来分配内存。

当向vector中添加元素而当前内存空间不足时,vector会进行扩容。扩容通常通过分配一个更大的内存块,并将原有数据复制到新块来实现,扩容的大小通常是原容量的1.5倍或2倍。

当从vector中删除元素时,如使用erase函数,其内部指针会相应调整,但已分配的内存空间通常不会立即释放。只有在vector被销毁或显示调用如shrink_to fit这样的函数时,才会尝试释放多余的内存空间。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表