关于vector 的初步学习
一.关于vector的简单介绍
1.vector实际上是对动态数组的封装;
2.可以向数组一样用下标访问元素,若vector长度为n,则其下标的范围是0~n-1;
3.根据下标访问元素效率高;
4.vector对象的空间随着插入,删除操作自动调整;
5.因为空间自动调整比较耗费时间,因此频繁地插入删除的情况下,vector效率稍差。
使用vector
1.万能头文件 #include<bits/stdc++.h>;
2.或者 除了标准头文件以为还要 #include<vector>;
二.vector-对象的创建
1.vector<元素的类型>向量的名称;
例如:
1.vector<int>v1; //创建了一个int型的向量
2.vector<string>s1;//创建了一个string型的向量
2.从已有的向量复制创建向量
例如:
1.vector<int>v2(v1);//拷贝v1的内容到v2当中去
3.创建10个元素的向量
例如:
1.vector<string>v1(10);
4.创建10个元素的向量且所有的元素均为1.55
例如:
1.vector<int>v1(10,1.55);
5.创建向量的指针
例如:
1.vector<int>*pvec = new vector <int>(10,-5)
//指针指向向量才有意义!
三.对vector的基本操作
1.在vector的尾部添加元素
使用push_back()函数向vector尾部添加元素
例如:这样操作获得了一个具有两个元素的vector,且v1[0]=1,v1[1]=2;
-
int main(void) { vector <int> v1; //对象的创建 v1.push_back(1); v1.push_back(2);` return 0; }
2.在任意位置插入元素
使用insert()函数向vector添加函数
例如:开头位置 begin()
末尾位置 end()
int main(void)
{
vector<int>v1;
v1.push_back(1);
v1.push_back(2);
v1.insert(begin(),0);//从头部插入
v1.insert(end(),4);//从尾部插入
v1.insert(end()-1,3);//从倒数第二个位置插入
return 0;
}
3.vector用下标去访问与元素
这一点与结构体类似,没什么好说的。
4.在vector的尾部删除元素
使用pop_back()函数删除最后一个函数
当v1[0]=0, v1[1]=1, v1[2]=2, v1[3]=3, v1[4]=10时,
我们采用代码v1.pop_back();
后,//删除元素10;
此时v1中元素更新为:v1[0]=0, v1[1]=1, v1[2]=2, v1[3]=3,
5.在vector任意位置删除元素
使用函数erase()删除任意位置的元素
erase :是动词 本意为 抹去,擦掉,删除。
和insert()函数的用法类似,不做介绍。
四.关于vector一部分函数的使用
例如:
1. v.size() //返回向量的大小;
2. v.max_size() //返回向量可容纳的最大个数;
3. v.empty() //返回向量是否有为空;
4. v.resize(n) //调整向量的大小,使其可以容纳n个元素,如果n<v1.resize(),则删除多出来的元素;否则,添加新的元素。
5. v.resize(n,t) //调整向量的大小,使其可以容纳n个元素,所有新添加的元素初始化为t。
6. v.capacity() //获取向量的容量,再分配内存空间之前所能容纳的元素的个数。