C++温习-标准库-vector
2015-06-15 22:31
423 查看
vector是C++中最基本的顺序容器,可把它看作是一个自动可变长度的数组来使用,使用中,比直接定义数组来使用方便,但运行效率会比数组低一些。
vector的内部实现,还是数组的形式,当新插入数据使得大于容量时,就会进行重新分配空间,并移动数据,vector并不是每次插入新的数据都重新分配空间,并且移动数据,毕竟这样的效率太低了,通常,它是会新开一个大一些的空间,来避免过于频繁的分配空间和移动数据。
vector 当然也是类模板。
需要指明类型。
常用的成员函数:
常用的 成员函数:
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++语言基础》程序阅读——二进制文件及文件的随机读写(4)
- C++经典开源库
- C++ Tree类
- 15周《C++语言基础》程序阅读——二进制文件及文件的随机读写(2)(3)
- 浅谈C++多态性
- C语言之ASSERT
- C++温习-标准库-set
- 【C语言】指针是一个变量
- C++中const与指针、引用的分析
- hdu 1033 (bit masking, utilization of switch, '\0' as end of c string)
- C和C++程序员面试秘籍
- C++温习-标准库-map
- Microsoft Visual c++ 各版本之间关系
- c++11 对容器进行排序
- 15周《C++语言基础》程序阅读——二进制文件及文件的随机读写(1)
- 读入一行由空格隔开的数字
- c语言的字符串拷贝函数的精简
- 用C++ 4000 实现Base64编码解码
- 【高级算法】Lasvegas+回溯算法解决3SAT问题(C++实现)
- 显示调用基类构造函数,迟绑定,VC++编译链接过程