vector不定长数组

梦里梦外; 2021-11-05 01:02 396阅读 0赞

看书的时候第n次见到vector了,一时兴起:既然这么好用就掌握它吧。

看书看别人的博客发现原理并不复杂。并且!居然支持任意位置插入!!一直以来无限头疼的问题,唯有二叉查找树--平衡树能解决的艰难的问题居然被STL封装好了!

立刻把之前树状数组折腾了好久的题拿出来用vector做。

五分钟搞定!!!

一. 向量

向量是一种对象实体,能够容纳许多类型相同的元素,因此被称为容器。vector属于STL(标准模板库),广义上可以看成是数组的增强版。

二. 基本操作

#include //头文件

vector a ; //声明一个int型向量a

vector a(10) ; //声明一个初始大小为10的向量

vector a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量

vector b(a) ; //声明并用向量a初始化向量b

vector b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值

a.size() //获取向量中的元素个数

a.empty() //判断向量是否为空

a.clear() //清空向量中的元素

a = b ; //将b向量复制到a向量中

a == b ; //a向量与b向量比较, 相等则返回1

a.insert(a.begin(), 1000); //将1000插入到向量a的起始位置前

a.insert(a.begin(), 3, 1000) ; //将1000分别插入到向量元素位置的0-2处(共3个元素)

vector a(5, 1) ;

vector b(10) ;

b.insert(b.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前

b.erase(b.begin()) ; //将起始位置的元素删除

b.erase(b.begin(), b.begin()+3) ; //将(b.begin(), b.begin()+3)之间的元素删除

b.swap(a) ; //a向量与b向量进行交换

转载于:https://www.cnblogs.com/hnoi/p/10999629.html

发表评论

表情:
评论列表 (有 0 条评论,396人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C# 委托与不定参数

    当不确定一个函数的具体定义形式时,我们可以定义一个委托类型,以后将其他定义好的函数 赋值给 委托实例。 委托是抽象的,而赋值给委托的函数是具体的。 例如,对若干个数是做加和

    相关 vector不定数组

      看书的时候第n次见到vector了,一时兴起:既然这么好用就掌握它吧。 看书看别人的博客发现原理并不复杂。并且!居然支持任意位置插入!!一直以来无限头疼的问题,唯有二叉