vector的使用及介绍

1.1vector特点

  • 是大小可变数组的序列容器
  • 采用连续的存储空间来存储元素
  • 在分配空间时,会额外分配一些capacity以适应可能的增长

1.2vector的使用

1.2.1(构造函数)的模拟实现

vector()=defaul;//无参构造
vector(size_t n,const T& value=T())//构造并初始化n个value
{
    reserve(n);
    for(size_t i=0;i<n;i++)
    {
        push_back(value);
    }

}
vector(const vector& x)//拷贝构造
{
    reserve(x.capacity);
    for(auto e:x)
    {
    push_back(e);
    }
}
vector(Inputiterator first,Inputiterator last)//用迭代器进行初始化构造
{
    while(first!=last)
    {
    push_back(*first);
    first++;
    }
}

1.2.2迭代器的使用

1.2.3vector空间增长问题

  • size()-------获取数据个数
  • capacity()--------获取容量大小
  • empty()--------判断是否为空
  • resize()---------改变size
  • reserve()--------改变capacity

(vs下的capacity是按1.5倍增长,g++2倍增长)

1.2.4vector的增删查改

  • push_back()-----尾插
  • pop_back()------尾删
  • find()------查找(但他不是vector的接口函数)
  • insert()------在pos位置之前插入
  • erase()------删除pos位置的数据
  • swap()-------交换两个vector的数据空间
  • operator[]像数组一样访问
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值