C++自带向量_vector_C++

本文详细介绍C++中的Vector容器,包括其基本概念、定义方法、常用操作及如何进行数据的插入与删除等。此外还介绍了如何利用指针进行高效操作,并提供了排序的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  vector 向量,是C++自带的一种容器,其实就是一个升级版的数组

  因为它使用的是动态空间,所以当我们不确定数组空间的时候可以使用它

  若要使用需打开头文件

 

1   #include<vector>

 

 

  定义一个 vector

1     vector<int> a;

  还有一些初始化的定义,以及二位定义,但是个人认为不需在定义时花太多功夫,初始化可在预处理中进行

  定义参考:

    http://www.cnblogs.com/mr-wid/archive/2013/01/22/2871105.html

  使用

1     a[1]=1;
2     scanf("%d",a[1]);
3     printf("%d",a[1]);
4     a[1]=b;

  可以像数组一样使用,不过要注意它的开头是 0 号位置,即 a[0]

  指针

1     a.begin()    //得到开头的指针
2     a.end()      //得到结尾+1的指针,返回的是一个空地址

  这个指针非常重要,插入删除输出等操作都是与其有关

  插入数据

1     a.insert(a.begin(),y);

  在开头插入 y,这样就省去了写链表的麻烦,它可以把后面的位置自动往后移动

  同样可以将指针移动,在指定的位置插入数据

1     a.insert(a.begin()+x,y);

  在第 x 与第 x+1 位置之间插入数据 y

  我们也可以在末尾插入数据

1     a.insert(a.end(),y);

  删除数据

  与插入类似,但是只用告诉删除的位置

1     a.erase(a.begin()+x);

  把第 x+1 位删除,也可以看做删除 a[x]

  注意,删除最后一位里面的指针是 a.end()-1,因为 a.end() 返回的是最后一位+1的位置

  其它操作

1     a.clear();      //清空
2     a.empty();      //判断是否为空
3     a.swap(b);      //交换 a 与 b 的数据
4     a.size();       //返回 a 的大小
5     a.front();      //得到 a 开头的值,即 a[0]
6     a.back();       //得到 a 结尾的值,即 a[a.size()-1]

  排序可以使用 sort 进行

1     sort(a.begin(),a.end());

  默认升序,若要降序需手写一个比较器

1 bool cmp(int &x,int &y)
2 {
3     return x>y;
4 }

  然后排序的时候添加比较器

1     sort(a.begin(),a.end(),cmp);

  

 

 

版权所有,转载请联系作者,违者必究

QQ:740929894

转载于:https://www.cnblogs.com/hadilo/p/5795158.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值