首页 > 编程知识 正文

vector数组的使用,vector使用说明

时间:2023-05-06 12:09:39 阅读:56025 作者:3970

标准库vector类型是c中常用的一种模板,vector类型相当于动态容器。 在vector中主要有几个基本操作。 接着,分别从以下几点进行总结。

定义和初始化向量对象

vector对象的基本操作。 主要包括元素的添加、遍历等

1、定义和初始化向量对象

向量主要有四种定义和初始化方法。

1.1、定义空向量

定义的方法。

向量;

1

1.2、定义向量副本

定义的方法。

VectorV1(V;

1

1.3、定义并初始化

定义的方法。

VectorV2(n,I );

1

定义了长度为n的vector v2,各要素为I。

1.4、定义并指定初始长度

定义的方法。

V3 (n;

1

的初始化方法是默认初始化。

1.5、例

关于上述4种定义方法,请参照下图。

# include # includeusingnamespacestd;

int main () )。

//第一种定义方法

向量;

for(intI=0; i 10; I ) {

v.push_back(I;

}

//第二种定义方法

VectorV1(V;

//第三种定义方法

vector v2 (10,1;

//第四种定义方法

VectorV3(10;

打印机(first : );

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

printf (第二阶段: );

for (vector :3360 size _ typeix1=0; ix1!=v1.size (; (ix1 ) )。

printf(%d(t ),v1[ix1];

}

printf((n );

printf(third: );

for (vector :3360 size _ typeix2=0; ix2!=v2.size (; (ix2 ) )。

printf(%d(t )、V2 ) IX2 );

}

printf((n );

打印机(forth : );

for (vector :3360 size _ typeix3=0; ix3!=v3.size (; (ix3 ) )。

printf(%d(t ),v3[ix3];

}

printf((n );

返回0;

}

注:上述代码在c中使用了向量。

2、载体中的基本操作

矢量的基本操作包括插入、删除和遍历。

2.1、插入操作

向向量中插入元素的方法有:在末尾添加元素、使用push_back (函数)、在指定位置插入元素和使用insert (插入)函数。

其中,insert ()函数的具体形式如下:

插入(p,t ) )。

1

指定在迭代器p之前插入值为t的元素。 具体应用如下例。

# include # includeusingnamespacestd;

int main () )。

向量;

for(intI=0; i 10; I ) {

v.push_back(I;

}

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

//插入开始时10

v.insert(v.Begin ),10 );

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

//10和0之间添加11

vector:iterator it;

for(it=v.Begin ); it!=v.end (; it ) {

if(*it==0) {

v.insert(it,11 );

布雷克;

}

}

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

返回0;

}

2.2、删除操作

使用erase ()方法删除指定的元素。

是erase(p )

1

删除迭代器p指向的元素。

# include # includeusingnamespacestd;

int main () )。

向量;

for(intI=0; i 10; I ) {

v.push_back(I;

}

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

//首先插入10、10、10

v.insert(v.Begin ),3,10 );

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

//删除第二个10

int i=0;

vector:iterator it;

for(it=v.Begin ); it!=v.end (; it ) {

I;

if(I==2) {

v.erase(it );

布雷克;

}

}

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

返回0;

}

另外,还有清空vector中所有元素的clear (,pop_back )方法和删除末尾元素的clear )方法。

# include # includeusingnamespacestd;

int main () )。

向量;

for(intI=0; i 10; I ) {

v.push_back(I;

}

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

//删除结尾元素

v.pop_back (;

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

返回0;

}

2.3、横移

遍历通常有两种方法。

根据下标

利用迭代器

如下所示。

# include # includeusingnamespacestd;

int main () )。

向量;

for(intI=0; i 10; I ) {

v.push_back(I;

}

//利用下标

for (vector :3360 size _ typeix=0; ix!=v.size (; ix ) {

printf(%d(t ),v[ix];

}

printf((n );

//利用迭代器

vector:iterator it;

for(it=v.Begin ); it!=v.end (; it ) {

printf('%d(t )、*it );

}

printf((n );

返回0;

}

2.4、其他

上述操作还包括以下操作:

size ()返回向量的大小

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。