第18章STL动态数组类
来源:互联网 发布:js 像素转换成毫米 编辑:程序博客网 时间:2024/05/17 09:30
1.std::vector
在末尾插入删除时间固定
在中间插入删除时间随数组大小而异
包含头文件<vector>
2.vector 初始化
std::vector <int> a;
std::vector <int> b(10);//大小是10
std::vector <int> c(10, 3);//是个元素,每个是3
std::vector <int> d(c);
std::vector <int> e(d.begin(), d.begin()+3);
3.插入数据
std::vector <int> a;
a.push_back(2);
a.push_back(3);
std::vector <int> b(3);
b[0] = 0;
b[1] = 3;
b[2] = 5;
vector <int> c(4, 90);
c.insert(c.begin(), 25);//把25插入到第一个位置,剩下的所有元素后移
c.insert(c.end(), 2, 33);//在最后连续插入两个33
vector <int> d(2, 30);
d.insert(d.begin()+1, c.begin(); c.end());//在d的开始位置向后一个的地方,插入c从开始到最后的元素
4.访问vector元素
vector <int> a;
a.push_back(2);
a.push_back(3);
a.push_back(4);
cout << a[2] << endl;
用这种方法可能会出现数组越界的问题,可以用at函数来代替
a.at(2);
vector <int>::iterator i = a.begin();
size_t c = distance(i, a.end());//计算从i到结尾的距离
5.删除vector
vector <int> a(3, 4);
a.pop_back();//从结尾删除一个元素
6.size capacity
size指的是vector中元素的个数,然而capacity指的是vector中最大可以保存的元素的个数。
由于vector是动态的,所以当插入的数据vector保存不下时,vector就会重新分配一块更大的内存来保存整个数组。如果vector变动比较频繁,就会导致频繁的分配内存而带来性能的影响。所以为了减少分配内存的次数,vector在增加存储空间重新分配内存时,会比需求的大小多分配出来一定的空间,来保证下次有新的元素增加的时候,不必去重新分配内存而提高效率。
vector <int> a(5,4);
a.size();//5
a.capacity();//5
a.push_back(1);
a.size();//6
a.capacity();//7
a.push_back(6);
a.size();//7
a.capacity();//7
7.deque
deque和vector很相似,只是它可以在开头和结尾插入和删除元素
deque <int> d;
d.push_back(3);
d.push_back(4);
d.push_back(5);
d.push_front(2);
d.push_front(1);
d.pop_back();
d.pop_front();
- 第18章STL动态数组类
- STL动态数组类
- STL 动态数组类
- 第19章、动态数组
- STL vector 动态数组实现
- STL-vector实现动态数组
- C++ STL-Vector动态数组
- 一个STL风格的动态二维数组
- 动态数组CCARRAY与STL中的VECTOR
- STL学习笔记-vector容器(动态数组)
- STL(二)vector 动态数组
- 第5章 STL
- 第18章、二维数组
- 第2周-项目5-数组作数据成员-工资类(动态数组)
- 第19章STL list
- 第16章part3-STL
- STL vector 动态数组(容器) 2011.04.14
- 动态数组对比STL vector及其实现(c/c++)
- 基于Appfuse的持久层开发
- 如何经营水果超市
- 开源 免费 java CMS - FreeCMS1.3-标签 infoPage
- C# 大宝宝IP地址便捷修改器 v1.1
- 浅谈C/C++堆栈指引——C/C++堆栈很强大
- 第18章STL动态数组类
- android String 资源 你所不知道的
- python中eval, exec, execfile,和compile
- structs实现的MVC结构
- 跟Google学习Android开发-起始篇-支持不同的设备(2)
- 那些年,我们简历投过的公司
- Apache and mod_wsgi on Ubuntu 12.10
- 获取一个正整数的最高位和更高一位值
- asp.net浏览器后退回到原来页面解决