【C++学习】vector

vector是C++中最基本的顺序容器,可把它看作是一个自动可变长度的数组来使用,使用中,比直接定义数组来使用方便,但运行效率会比数组低一些。

vector的内部实现,还是数组的形式,当新插入数据使得大于容量时,就会进行重新分配空间,并移动数据,vector并不是每次插入新的数据都重新分配空间,并且移动数据,毕竟这样的效率太低了,通常,它是会新开一个大一些的空间,来避免过于频繁的分配空间和移动数据。

vector 当然也是类模板。

template < class T, class Alloc = allocator<T> > class vector; // generic template

需要指明类型。

常用的成员函数:

iterator;//迭代器
const_iterator;//不可变
reverse_iterator;//逆向
const_reverse_iterator;//不可变+逆向

常用的 成员函数:

//1. 迭代器
begin();
end();
rbegin();
rend();
cbegin();//以下C++11新加入
cend();
crbegin();
crend();
//以上都是返回迭代器,其中r开头的表示返回的是逆向的迭代器,c开头的表示返回的是const迭代器。

//2. 容量相关:
size();//返回大小
resize();//
capacity();//分配的空间的大小
empty();//是否为空
shrink_to_fit();//C++11 新加入。请求重新分配空间,使其capacity==size,这个看实现,不一定会操作,只是“请求”

//3. 数据读取
operator[];//
at();
front();
back();
data();//C++11新加入,返回直接的指针

//4. 增删改查
void assign (InputIterator first, InputIterator last);//赋值,更改vector的整个内容。包括capacity。
push_back();//尾部添加数据
pop_back();//删除最后一个位置上的元素
iterator insert (const_iterator position, const value_type& val);//在位置position上添加元素。该方法很低效。
iterator erase (const_iterator position);//删除position位置上的元素。
clear();//清空vector


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值