vector向量使用方法总结

来源:互联网 发布:液压制图软件 编辑:程序博客网 时间:2024/05/21 21:44
一、概述
vector是C++标准模板库中的一个重要组成部分,vector是一个容器,它能够存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,可以动态改变大小。
使用前提:
头文件包含:#include <vector>
命名空间:vector属于std命名空间,因此需要通过命名限定,可在文件开头加上
using std::vector;
或者
using namespace std;
或者
在定义每个vector对象时,写成std::vector

二、vector对象创建
可以将vector当做是一个类,其内部定义了构造函数和其他各种功能成员函数。其在定义对象时需注意初始化的一些细节,具体可以通过以下三个例子看出。
vector<int> vecExample1;//默认定义了一个长度为0,没有任何值的向量vecExample1,此时:vecExample1.size() = 0,vecExample1[0]会报错。如果用Debug来看的话,vecExample1为[0](),可通过push_back()函数来动态改变vecExample1的长度。
vector<int> vecExample2(1); //调用vector的构造函数,并传递参数1,即定义了一个长度为1,并默认初始化为0的向量vecExample2,此时:vecExample2.size()=1,vecExample2[0]=0。如果用Debug模式来看的话,vecExample2为[1](0)。仍然可以通过push_back()函数来动态改变vecExample的长度。
vector<int> vecExample3(100);//与定义vector<int> vecExample2(1)类似,只不过此时向量长度为100,并且每个向量元素都默认初始化为0。如果用Debug模式来看的话,vecExample3为[100](0,0,.......,0,0,0)。
vector<int> vecExample4(100,20); //与定义vector<int> vecExample3(100)类似,只不过此时相当于调用了vector模板类的另一种类型的构造函数,并初始化向量的每个元素为20。

三、vector对象操作
复制操作:
vector变量之间互不影响,即将向量A复制给向量B之后,如果改变向量B中的元素,并不会影响到向量A
功能函数:
可以使用的功能:
std::vector<int> c;
c.clear()         移除容器中所有数据,直接将vector变为空向量,即c.empty()为true。
c.empty()         判断容器是否为空
c.erase(pos)        删除pos位置的数据,向量长度会减少。pos需是迭代器类型
c.erase(beg,end) 删除[beg,end)区间的数据
c.front()         传回第一个数据。
c.insert(pos,elem)  在pos位置插入一个elem拷贝
c.pop_back()     删除最后一个数据。
c.push_back(elem) 在尾部加入一个数据。
c.resize(num)     重新设置该容器的大小
c.size()         回容器中实际数据的个数。
c.begin()           返回指向容器第一个元素的迭代器
c.end()             返回指向容器最后一个元素的迭代器