STL vector
来源:互联网 发布:学校结核病管理网络 编辑:程序博客网 时间:2024/06/05 04:43
一,vector与array之间的区别
vector与array非常的相似,两者唯一的差别在于内存空间的使用。array是静态空间,一旦配置就不能改变;vector是动态空间,随着元素的加入,它会动态的扩充自己的内存空间。实现vector的关键技术,就是对其占用的内存空间的控制以及重新配置时元素移动效率。
二,vector的迭代器
vector的底层是用一段连续的内存空间来存储容器中的元素,普通的指针都可以作为vector的迭代器而满足所有的条件因为迭代器所需要的操作,例如:*、->、++、--、+、- 等,普通的指针都具备这些功能。vector支持随机存取,而普通的指针就具备这些功能,所以vector的迭代器是普通的指针。
三,vector的内存管理
在vector中添加元素时,如果超过了它的容量,会导致内存的重新配置。重新配置内存并不是在原来的内存的后面添加新的空间,而是以原大小的两倍配置新的内存空间,然后将原来的内容拷贝到新的内存空间,之后释放掉原来的内存空间。因此,对vector的任何操作,一旦导致内存空间的重新配置,指向原vector的所有的迭代器都将失效。
四,vector的基本操作
1,初始化操作
int nums[] = {1, 2, 3, 4, 5};vector<int> vect(nums, nums + 5);
2,添加与获取元素
//在vector的尾部添加一个元素vect.push_back(6);//获取头、尾的元素int y = vect.front();int x = vect.back();
3,删除容器中的元素
//直接弹出容器尾部的元素,但是不会返回这个元素,pop_back()的返回值为voidvect.pop_back();//删除指定位置的元素vect.erase(vect.begin());
4,其他常用操作
//判断容器是否为空,如果容器中没有元素返回true,否则返回falsevect.empty();//获取容器中元素的数目int size = vect.size();
阅读全文
0 0
- STL vector
- STL vector
- stl vector
- STL vector
- STL vector
- stl-vector
- STL--vector
- STL Vector
- stl vector
- STL:vector
- STL---vector
- STL-vector
- Stl--Vector
- Stl--Vector
- STL Vector
- STL vector
- stl vector
- stl-vector
- CSS核心属性
- 20170802题目
- 关于Spring中的<context:annotation-config/>配置
- [__NSCFConstantString size]: unrecognized selector sent to instance 错误
- C语言基础(六)指针和多维数组
- STL vector
- 定时任务--在Spring 中配置Quartz
- Flask之Helpers
- Linux Mint TLP设置
- CISCO VPN Client Reason 442 WIN8/10错误解决方案
- 牛客网刷题笔记--树
- oracle基本操作
- C语言基础(七)字符串 类型重定义 结构体
- abap 向上取整CEIL和向下取整FLOOR