版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26822029/article/details/82917028
STL中的容器可以分为序列式容器和关联式容器。序列式容器指其中的元素都可序,但未必有序。在STL中提供了vector, list, deque, stack, queue, priority_queue等等序列式容器。其中stack和queue是由deque改头换面而成。
本篇介绍STL中序列式容器的设计和使用方式。
一、vector
欲使用vector需要包含头文件: #include <vector>
1.1 vector设计实现
vector的数据安排以及操作方式,和array特别类似;两者的区别在于array是静态的,分配完内存之后不能再改变了,而vector是动态的,随着元素的加入,其自身会自动扩充空间以容纳新的元素。也就是说如果vector当前申请的空间不够用了,它会自动执行以下操作:申请一块新的内存空间,将当前地址的旧元素一一赋值到新的地址空间中,最后将原来的空间归还给系统。
》》》未完待续《《《
1.2 vector的使用
常用函数一览表:
编号 | 函数名称 | 函数解释 |
1 | void push_back(elem) | 将elem插入到尾部 |
2 | void pop_back() | 删除最后一个元素 |
3 | reference front() | 传回第一个元素 |
4 | reference back() | 传回最后一个元素 |
5 | iterator erase(pos) | 清除pos位置上的数据,传回下一个数据的位置 |
6 | size_t size() | 返回容器中实际数据的个数 |
7 | size_t capacity() | 返回当前容器能容纳的数据个数 |
8 | void clear() | 移除容器内的所有数据,容器能容纳的数据的大小不变 |
9 | bool empty() | 判断容器是否为空 |
10 | void insert(pos, elem) | 在pos位置插入一个elem拷贝,传回新数据的位置 |