C++ vector的用法(整理)
c++ vector的用法
vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:
一、vector 的初始化:可以有五种方式,举例说明如下:
(1) vector<int> a(10); (2)vector<int> a(10,1); (3)vector<int> a(b); (4)vector<int> a(b.begin(),b.begin+3); (5)int b[7]={1,2,3,4,5,9,8}; vector<int> a(b,b+7);
|
二、vector对象的几个重要操作,举例说明如下:
1)a.assign(b.begin(), b.begin()+3); (2)a.assign(4,2); (3)a.back(); (4)a.front(); (5)a[i]; (6)a.clear(); (7)a.empty(); (8)a.pop_back(); (9)a.erase(a.begin()+1,a.begin()+3); (10)a.push_back(5); (11)a.insert(a.begin()+1,5); (12)a.insert(a.begin()+1,3,5); (13)a.insert(a.begin()+1,b+3,b+6); (14)a.size(); (15)a.capacity(); (16)a.resize(10); (17)a.resize(10,2); (18)a.reserve(100); (19)a.swap(b); (20)a==b;
|
三、顺序访问vector的几种方式,举例说明如下:
(1)向向量a中添加元素
1、
1 vector<int> a; 2 for(int i=0;i<10;i++) 3 a.push_back(i);
|
2、也可以从数组中选择元素向向量中添加
int a[6]={1,2,3,4,5,6}; vector<int> b; for(int i=1;i<=4;i++) b.push_back(a[i]);
|
3、也可以从现有向量中选择元素向向量中添加
int a[6]={1,2,3,4,5,6}; vector<int> b; vector<int> c(a,a+4); for(vector<int>::iterator it=c.begin();it<c.end();it++) b.push_back(*it);
|
4、也可以从文件中读取元素向向量中添加
ifstream in("data.txt"); vector<int> a; for(int i; in>>i) a.push_back(i);
|
5、【误区】
vector<int> a; for(int i=0;i<10;i++) a[i]=i;
|
//这种做法以及类似的做法都是错误的。刚开始我也犯过这种错误,后来发现,下标只能用于获取已存在的元素,而现在的a[i]还是空的对象
//如果想要这样进行赋值,则必须先给a开辟控件;
例如:
vector <int> a(10);
a.resize(10);
|
(2)从向量中读取元素
1、通过下标方式读取
int a[6]={1,2,3,4,5,6}; vector<int> b(a,a+4); for(int i=0;i<=b.size()-1;i++) cout<<b[i]<<" ";
|
2、通过遍历器方式读取
int a[6]={1,2,3,4,5,6}; vector<int> b(a,a+4); for(vector<int>::iterator it=b.begin();it!=b.end();it++) cout<<*it<<" ";
|
四、几种重要的算法,使用时需要包含头文件:
#include<algorithm> (1)sort(a.begin(),a.end()); (2)reverse(a.begin(),a.end()); (3)copy(a.begin(),a.end(),b.begin()+1); (4)find(a.begin(),a.end(),10);
|