vector容器

来源:互联网 发布:新疆网络干部学院网址 编辑:程序博客网 时间:2024/05/24 01:17

1.vector容器示意图


2.vector的迭代器

vector支持随机存取,所以vector提供的是随机访问迭代器。

3.vector的数据结构

vector采用连续线性空间实现,它用两个迭代器_Myfirst和_Mylast分别指向配置得来的连续空间中目前已被使用的范围,并以迭代器_Myend指向整块连续内存空间的尾端。一个vector的容量永远大于或等于其大小,一旦容量等于大小,便是满载,下次再有新增元素,整个vector容器就另外开辟内存。

4.vector常用API

4.1vector构造函数

vector<T> v;采用模板类实现,默认构造函数

vector(v.begin(),v.end());将[v.begin(),v.end())区间中的元素拷贝给本身

vector(n,elem);构造函数将n个elem拷贝给本身。

vector(const vector& v);拷贝构造

4.2vector赋值操作

assign(v.begin(),b.end());将[begin,end)区间中的数据拷贝赋值给本身

assign(n,elem);将nge elem拷贝赋值给本身

vector& operator=(const vector& vec);重载=

swap(vec);将vect与本身的元素互换

4.3vector大小操作

size();返回元素个数

empty();判断是否为空

resize(int num);重置容器大小,若容器变短,超出容器长度的元素被删除,若容器变长,则以默认值填充

resize(int num,elem);重置容器大小,若容器变短,超出容器长度的元素被删除,若容器变长,则以elem填充新位置

capacity();返回容器容量

reserve(int len);容器预留len个元素长度,预留位置不初始化。

4.4vector数据存取

at(int idx);返回索引idx所指的数据,idx越界,跑出out_of_range异常

operator[];[]重载

front();返回容器中第一个数据元素

back();返回容器中最后一个数据元素

4.5vector插入和删除

insert(const_iterator pos,int count,ele);迭代器指向位置pos插入count个元素ele

push_back(ele);尾插

pop_back();删除最后一个元素

erase(const_iterator start,const_itrator end);删除迭代器从start到end之间的元素

erase(const_iterator pos);删除迭代器指向的元素

clear();删除容器中所有的元素

0 0
原创粉丝点击