码迷,mamicode.com
首页 > 编程语言 > 详细

C++温习-标准库-vector

时间:2015-06-15 23:59:34      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

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


C++温习-标准库-vector

标签:

原文地址:http://blog.csdn.net/chenriwei2/article/details/46508991

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!