C语言中的vector是什么意思,c语言之vector用法

标准库vector类型是C++中使用较多的一种类模板,vector类型相当于一种动态的容器,在vector中主要有一些基本的操作,接下来分别从以下的几个方面总结:

vector对象的定义和初始化

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

1、vector对象的定义和初始化

在vector中主要有四种定义和初始化的方法:

1.1、定义空的vector

定义的方法为:

vectorv;

1

1.2、定义一个vector的副本

定义的方法为:

vectorv1(v);

1

1.3、定义并初始化

定义的方法为:

vectorv2(n, i);

1

定义了长度为n的vector v2,并且每个元素都是i。

1.4、定义并指定初始长度

定义的方法为:

vectorv3(n);

1

采用的初始化方法为默认初始化。

1.5、例子

对于上述的四种定义方法如下图所示:

#include #include using namespace std;

int main(){

//第一种定义方法

vectorv;

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

v.push_back(i);

}

//第二种定义方法

vectorv1(v);

//第三种定义方法

vectorv2(10, 1);

//第四种定义方法

vectorv3(10);

printf("first: ");

for (vector::size_type ix = 0; ix != v.size(); ix ++){

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

}

printf("\n");

printf("second: ");

for (vector::size_type ix1 = 0; ix1 != v1.size(); ix1 ++){

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

}

printf("\n");

printf("third: ");

for (vector::size_type ix2 = 0; ix2 != v2.size(); ix2 ++){

printf("%d\t", v2[ix2]);

}

printf("\n");

printf("forth: ");

for (vector::size_type ix3 = 0; ix3 != v3.size(); ix3 ++){

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

}

printf("\n");

return 0;

}

注:上述代码是在C中使用vector。

2、vector中的基本操作

在vector中的基本操作包括插入,删除,遍历等。

2.1、插入操作

在vector中插入元素包括两种,一种是在尾部添加元素,使用的函数是push_back()函数,另一种是在指定位置插入元素,使用到的函数是insert()函数。

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

insert(p, t)

1

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

#include #include using namespace std;

int main(){

vectorv;

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

v.push_back(i);

}

for (vector::size_type ix = 0; ix != v.size(); ix ++){

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

}

printf("\n");

//在开始插入10

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

for (vector::size_type ix = 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);

break;

}

}

for (vector::size_type ix = 0; ix != v.size(); ix ++){

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

}

printf("\n");

return 0;

}

2.2、删除操作

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

erase(p)

1

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

#include #include using namespace std;

int main(){

vectorv;

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

v.push_back(i);

}

for (vector::size_type ix = 0; ix != v.size(); ix ++){

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

}

printf("\n");

//在开始插入10,10,10

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

for (vector::size_type ix = 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);

break;

}

}

for (vector::size_type ix = 0; ix != v.size(); ix ++){

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

}

printf("\n");

return 0;

}

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

#include #include using namespace std;

int main(){

vectorv;

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

v.push_back(i);

}

for (vector::size_type ix = 0; ix != v.size(); ix ++){

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

}

printf("\n");

//删除末尾元素

v.pop_back();

for (vector::size_type ix = 0; ix != v.size(); ix ++){

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

}

printf("\n");

return 0;

}

2.3、遍历

遍历通常有两种方式:

通过下标

利用迭代器

如下:

#include #include using namespace std;

int main(){

vectorv;

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

v.push_back(i);

}

//利用下标

for (vector::size_type ix = 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");

return 0;

}

2.4、其他

在上面的操作中,还有一些操作,如:

size(),返回的是vector的大小

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值