vector(vector c 用法是什么)

vector(vector c 用法是什么)

vector c 用法是什么呢?不清楚的小伙伴们来看看小编今日的分享吧!

vector 是空间向量类型,它可以承载很多类型的数据信息,如多个整数金额,因此称其为器皿。vector 是C STL的一个关键组员,应用它时必须包括库函数:

#include<vector>;

一、vector的复位

(1) vector<int> a(10); //界定了10个整形原素的空间向量(尖括号中为原素类型名,它可以是一切合理合法的数据信息类型),但沒有得出初始值,其值是不确定性的。

#include<iostream>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

vector<int> a(10);

for(int i=0;i<a.size();i )

cout<<a[i]<<" ";

return 0;

}

(2)vector<int> a(10,1); //界定了10个整形原素的空间向量,且得出每一个原素的初始值为1

检测

#include<iostream>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

vector<int> a(10,1);

for(int i=0;i<a.size();i )

cout<<a[i]<<" ";

return 0;

}

(3)vector<int> a(b); //用b空间向量来建立a空间向量,总体拷贝性取值

检测:

#include<iostream>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

vector<int> b(10,3);

vector<int> a(b);

for(int i=0;i<a.size();i )

cout<<a[i]<<" ";

return 0;

}

(4)vector<int> a(b.begin(),b.begin 3); //界定了a数值b中第0个到第2个(共3个)原素

检测:

#include<iostream>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

vector<int> b;

for(int i=0;i<10;i )

b.push_back(i);

vector<int> a(b.begin(),b.begin() 3); //界定了a数值b中第0个到第2个(共3个)原素

for( i=0;i<a.size();i )

cout<<a[i]<<" ";

return 0;

}

(5)int b[7]={1,2,3,4,5,9,8};

vector<int> a(b,b 7); //从二维数组中得到初始值 从b逐渐 一共7个

检测:

#include<iostream>

#include<math.h>

#include<vector>

using namespace std;

int main()

{

int b[7]={1,2,3,4,5,6,7};

vector<int> a(b,b 7); //从二维数组中得到初始值 从b逐渐 一共7个!!!!

for( int i=0;i<a.size();i )

cout<<a[i]<<" ";

return 0;

}

二、vector目标的好多个关键实际操作,举例子如下所示:

(1)a.assign(b.begin(), b.begin() 3); //b为空间向量,将b的0~2个原素组成的空间向量赋给a

(2)a.assign(4,2); //是a只含4个原素,且每一个原素为2

(3)a.back(); //回到a的最后一个原素

(4)a.front(); //回到a的第一个原素

(5)a[i]; //回到a的第i个原素,当且仅当a[i]存有

(6)a.clear(); //清除a中的原素

(7)a.empty(); //分辨a是否为空,空则回到ture,不空则返回false

(8)a.pop_back(); //删掉a空间向量的最后一个原素

(9)a.erase(a.begin() 1,a.begin() 3); //删掉a中第1个(从第0个起算)到第2个原素,换句话说删掉的原素从a.begin() 1起算(包含它)一直到a.begin() 3(不包括它)

(10)a.push_back(5); //在a的最后一个空间向量后插入一个原素,其数值5

(11)a.insert(a.begin() 1,5); //在a的第1个原素(从第0个起算)的部位插进标值5,如a为1,2,3,4,插进原素后为1,5,2,3,4

(12)a.insert(a.begin() 1,3,5); //在a的第1个元素(从第0个起算)的部位插进3数量,其值都为5

(13)a.insert(a.begin() 1,b 3,b 6); //b为二维数组,在a的第1个原素(从第0个起算)的部位插入b的第3个原素到第5个元素(不包括b 6),如b为1,2,3,4,5,9,8 ,插进原素后为1,4,5,9,2,3,4,5,9,8

(14)a.size(); //回到a中原素的数量;

(15)a.capacity(); //回到a在存储空间中一共可以容下的原素数量

(16)a.resize(10); //将a的目前原素数量调到10个,更多就是删,少则补,其值任意

(17)a.resize(10,2); //将a的目前原素数量调到10个,更多就是删,少则补,其数值2

(18)a.reserve(100); //将a的容积(capacity)扩大至100,换句话说如今检测a.capacity();的情况下传参是100.这类实际操作仅有在必须给a加上很多信息的过程中才 看起来更有意义,由于这将防止运行内存多次容积扩大实际操作(当a的容积不够时电脑上会全自动扩充,自然这必定减少特性)

(19)a.swap(b); //b为空间向量,将a中的要素和b中的因素开展全面性互换

(20)a==b; //b为空间向量,向量的较为实际操作也有!=,>=,<=,>,<

三、次序浏览vector的多种方法,举例子如下所示:

(1)向向量a中加上原素

1、运用push_back()

vector<int> a;

for(int i=0;i<10;i )

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]或是空的目标

(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、根据解析xml器方法载入

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<<" ";

以上便是小编今日的共享了,期待可以作用到大伙儿。

- END -