c++ STL vector初步学习
/*vector(向量):是一种顺序容器,,动态数组,事实上和数组差不多,但它比数组更优越。
一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。
而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,
它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。
2. vector声明及初始化
vector<int> vec; //声明一个int型向量
vector<int> vec(5); //声明一个初始大小为5的int向量
vector<int> vec(10, 1); //声明一个初始大小为10且值都是1的向量
vector<int> vec(tmp); //声明并用tmp向量初始化vec向量
vector<int> tmp(vec.begin(), vec.begin() + 3); //用向量vec的第0个到第2个值初始化tmp
int arr[5] = {1, 2, 3, 4, 5};
vector<int> vec(arr, arr + 5); //将arr数组的元素用于初始化vec向量
//说明:当然不包括arr[4]元素,末尾指针都是指结束元素的下一个元素,
//这个主要是为了和vec.end()指针统一。
10 vector<int> vec(&arr[1], &arr[4]); //将arr[1]~arr[4]范围内的元素作为vec的初始值
3.常用操作
v1.push_back() //在数组的最后添加一个数据
v1.pop_back() //去掉数组的最后一个数据
v1.front() //返回第一个元素(栈顶元素)
v1.begin() //得到数组头的指针,用迭代器接受
v1.end() //得到数组的最后一个单元+1的指针,用迭代器接受
v1.clear() // 移除容器中所有数据
v1.empty() //判断容器是否为空
v1.erase(pos) //删除pos位置的数据
v1.erase(beg,end)// 删除[beg,end)区间的数据
v1.size() //回容器中实际数据的个数
v1.insert(pos,data) //在pos处插入数据
最新文章
- 马旭飞:共探H3 BPM社区发展战略
- SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.4
- HDU 5867 Sparse Graph (2016年大连网络赛 I bfs+补图)
- JSP中的指令(Directive)
- linux安装eclipse
- java.io.stream
- Python 之我见
- Ubuntu常用命令大全(转)
- JavaWeb学习-Tomcat
- 【POJ1113】Wall(凸包)
- DWZ简介及其使用
- Linux(CentOS6.5) 开放端口,配置防火墙
- 用于展现图表的50种JavaScript库
- python开发【lambda篇】
- CAS部署在Windows上
- Web API中的路由(二)——属性路由
- Vue Checkbox全选和选中的方法
- ubuntu16.04——WingIDE安装 操作服务器是一件很好玩的事情
- ecstore-自定义app里增加对应的wap的模板
- PHP从数组中找到指定元素的位置