vector
2015-12-02 10:35
190 查看
#include//将元素置于动态数组中加以管理 namespace std { template > class vector; } //vector是一个有序群集,支持随机存取。 //在末端添加或删除元素时,vector的性能相当好, //但在前段或中部添加或删除元素时,性能就不怎么样了。 //vector的操作函数 //构造,赋值,析构 vector c;//产生一个空vector; vector c1(c2);//将c2复制到c1; vector c(n);//产生一个大小为n的vector; vector c(n,elem);//产生一个大小为n的vector,每个元素都是elem; vector c(beg,end);//产生一个vector,以[beg,end)作为元素初值; c.~vector();//释放内存,销毁元素; //非变动性操作 c.size();//返回元素数量; c.empty();//判断是否为空; c.max_size();//可用空间的最大数量; capacity();//重新分配前空间能容纳的最大数量; reverse();//容量不足,扩大; c1==c2; c1!=c2; c1c2; c1<=c2; c1>=c2;//判断c1和c2的大小关系; //赋值 c1==c2;//将c2的值全部c1; c.assign(n,elem);//复制n个elem,全部赋给c; c.assign(beg,end);//将区间[beg,end)内的元素全部赋给c; c1.swap(c2);//将c1和c2元素互换; swap(c1,c2);//同上; //元素存取 c.at(idx);//返回idx所指元素,如果越界,抛出out_of_range; c[idx];//返回idx所指元素,不进行越界检查; c.front();//返回第一个元素,不进行存在检查; c.back();//返回最后一个元素,不进行存在检查; //迭代器相关函数 c.begin();//返回一迭代器,指向第一元素 c.end();//返回一迭代器,指向最后一元素下一位置; c.rbegin();//返回一逆向迭代器,指向逆向第一元素; c.rend();//返回一逆向迭代器,指向逆向迭代的最后一元素下一位置; //vector迭代器持续有效,除非 //1.使用者在较小索引位置添加或删除元素。 //2.由于容量变化而引起的内存重新分配。 //添加和移除 c.insert(pos.elem);//在pos位置上插入elem,返回新元素位置; c.insert(pos,n,elem);//在pos位置上插入n个elem,无返回值; c.insert(pos,beg,end);//在pos位置上插入[beg,end)内所有元素; c.push_back(elem);//在尾部添加elem; c.pop_back();//删除最后一个元素,无返回; c.erase(pos);//删除pos位置上的元素,返回下一元素的位置; c.erase(beg,end);//删除[beg,end)内所有元素,返回一个元素的位置; c.resize(num);//将元素数量改为num,多出来的需构造; c.resize(num,elem);//将元素数量改为num,多出来的都为elem; c.clear();// 移除所有元素,清空容器。
相关文章推荐
- android自定义view继承linearLayout,view大小大于屏幕
- 2015-12-2oracle数据删除后,100万的数据只剩10条,查询速度反而变慢
- 为什么我不推荐大家去外包公司
- ios 安装+xcode
- 【C语言提高15】字符串一级指针内存模型
- 嵌入式系统搭建
- 重定向和请求转发的区别
- LintCode: Number of Islands
- 刚才看见一段非常巧妙地算法来这里记录一下Maximum Rectangle
- 项目集成二维码扫描
- 内容转化为List
- initWithFrame 方法的理解与使用
- Shader学习整理
- 一路走来遇到的问题(一)
- 安卓Animation动画(转载)
- 修改PullToRefresh的加载动画
- 黑马程序员——OC学习——@property和构造方法
- 关于iOS7之后状态栏修改总结
- Can't locate ExtUtils/MakeMaker.pm
- LeetCode- Two Sum