(C/C++学习)1.STL之vector容器

说明:vector是C++中一个的容器类,它用于存放类型相同的元素,利用成员函数及相关函数可以方便的对元素进行增加或删除,排序或逆序等等。一个 vector 的容量(capacity)永远大于或等于其大小(size),一旦容量等于大小,便是满载,下次再有新增元素,整个 vector 容器就得重新申请一块更大的连续容量空间(一般是两倍原来容量大小)来存储所有的元素(包括原有的和新增的),然后原来的空间被释放

注意vector是一个动态数组,可以动态增加数组的大小(size)。所谓动态增加大小,并不是在原空间之后续接新空间(因为无法保证原空间之后尚有可配置的空间),而是重新申请一块更大的内存空间,然后将原数据拷贝到新空间,并释放原空间。因此,对 vector 的任何操作,一旦引起空间的重新配置,原空间的地址就变了。

1.包含的头文件:#include<vector>

2.构造函数

1 vector<T> v; //默认构造函数,T是数据类型
2 vector<T> v1(v.begin(),v.end()); //将容器v参数区间的元素拷贝到容器v1
3 vector<T> v2(n,elem); //构造函数将n个elem元素赋给v2
4 vector<T> v3(v1); //拷贝构造函数
5 vector<int> v4{1,2,3,4,5}; //指定元素初始化容器
6//用数组初始化一个vector容器
7 int arr[] = {1,2,3,4};
8 vector<int> v4(arr,arr+sizeof(arr)/sizeof(int));

3.常用赋值函数

1 v.assign(v1.begin(),v1.end()); //将v1固定区间内的元素拷贝赋值给v
2 v.assign(n,elem); //将n个elem元素拷贝赋值给v
3 v = v1; //将v1赋给v(重载了等号操作符)
4 v.swap(v1); //将两个容器的元素进行交换

4.size操作

1 v1.size(); //返回v1中的元素个数
2 v1.empty(); //判断v1是否为空
3 v1.resize(num,elem);
//重新指定容器的长度为num,若容器变长,则以elem填充新位置,反之末尾元素被删除(第二个参数有默认值)
4 v1.capacity(); //容器的容量 5 v1.reserve(len); //容器预留len个元素容量,预留位置不初始化,元素不可访问,size为0

5.数据存取

1 v1.at(i); //返回索引i所指的数据,越界抛异常
2 v1[i]; //返回索引i所指的数据,越界报错
3 v1.front(); //返回容器的第一个数据
4 v1.back(); //返回容器的最后一个数据

6.插入和删除

1 v1.insert(pos,count,ele); //迭代器指向位置pos插入conut个元素ele
2 v1.push_back(); //尾部插入元素ele
3 v1.pop_back(); //删除尾部元素
4 v1.erase(pos1,pos2); //删除迭代器pos1到pos2之间的元素
5 v1.erase(pos); //删除迭代器指向的元素
6 v1.clear(); //删除容器中的所有元素

 

posted @ 2018-09-20 21:02  退後。  阅读(305)  评论(2编辑  收藏  举报