您的位置:首页 > 编程语言 > C语言/C++

C++温习-标准库-vector

2015-06-15 22:31 423 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: