STL—vector空间的动态增长
vector空间的动态增长
vector的size(),capacity(),reserve(),resize()函数
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> a;
cout << "a.size(): " << a.size() << " a.capacity(): " << a.capacity() << endl;
for (int i = ; i < ; i++)
{
a.push_back(i);
cout << "a.size(): " << a.size() << " a.capacity(): " << a.capacity() << endl;
}
cout << endl;
vector<int> b;
b.reserve();
for (int i = ; i < ; i++)
{
b.push_back(i);
cout << "b.size(): " << b.size() << " b.capacity(): " << b.capacity() << endl;
}
b.push_back();
cout << "b.size(): " << b.size() << " b.capacity(): " << b.capacity() << endl;
cout << endl;
b.reserve();
cout << "after b.reserve(15):" << endl;
cout << "b.size(): " << b.size() << " b.capacity(): " << b.capacity() << endl;
b.resize();
cout << "after b.resize(5):" << endl;
cout << "b.size(): " << b.size() << " b.capacity(): " << b.capacity() << endl;
return ;
}
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
a.size(): a.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
b.size(): b.capacity():
after b.reserve():
b.size(): b.capacity():
after b.resize():
b.size(): b.capacity():
4. 当reserve()分配的空间比原空间小时,是不会引起重新分配的。
(全文完)
STL—vector空间的动态增长的更多相关文章
- STL—vector
前面介绍了STL对象的构造与析构以及内存的配置与释放,那具体的容器是怎么应用STL的空间配置器的呢?这篇先介绍STL的容器vector. vector的数据成员 vector只有4个数据成员:3个迭代 ...
- STL——vector
学到STL的vector,发现手中的材料不是很详细,这里做个汇总. 1 操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> ...
- STL Vector使用
http://blog.163.com/zhoumhan_0351/blog/static/399542272010225104536463 Vector 像一个快速的数组,其具有数组的快速索引方式. ...
- STL vector 内存释放
最近在论坛看到一个提问帖子,问题是vector中存储了对象的指针,调用clear后这些指针如何删除? class Test { public: Test() {} ~Test() { cout < ...
- STL vector的介绍(1)
尝试下翻译STL里面的一些easy和算法.四级过了.六级刚考.顺便练练自己的英语水平.翻译的不好的地方请大神多多不吝赐教哈.方便我改正. 原来均来自:http://www.cplusplus.com/ ...
- 2.3 C++STL vector容器详解
文章目录 2.3.1 引入 2.3.2 代码实例 2.3.3 运行结果 总结 2.3.1 引入 vector 容器 动态数组 可变数组 vector容器 单口容器(尾部操作效率高) vector动态增 ...
- STL vector
STL vector vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问 ...
- STL vector用法介绍
STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...
- C++ STL vector 内存分配
vector为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储. 当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间.拷贝元素.撤销 ...
随机推荐
- Jmeter Boss系统login
之前说,想学习并且掌握自动化测试,但是,折腾过来折腾过去,逐渐意识到了,app自动化测试分为UI层面还有接口测试.(其实,功能测试就是UI+接口测试的集合,当然,只是我自己这么认为,hhhhhhh) ...
- Java 9 揭秘(2. 模块化系统)
文 by / 林本托 Tips 做一个终身学习的人. 在此章节中,主要介绍以下内容: 在JDK 9之前Java源代码用于编写,打包和部署的方式以及该方法的潜在问题 JDK 9中有哪些模块 如何声明模块 ...
- Coursera 机器学习笔记(一)
主要是第一二周内容 机器学习概要 机器学习是什么? 生活在信息时代的我们,其实时时刻刻都离不开机器学习算法.比如日常使用的搜索引擎就涉及到很多学习算法. Arthur Samuel 给出第一个定义.他 ...
- form表单在前台转json对象
会发生序列化乱码问题,待解决. //根据表单id将其内空间,名称,值转为json var fireTraceEquipment =queryParamByFormId('form1'); functi ...
- JavaScript设计模式_05_发布订阅模式
发布-订阅模式,定义了对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都将得到通知.发布-订阅模式是使用比较广泛的一种模式,尤其是在异步编程中. /* * pre:发布-订阅 ...
- Hibernate 案例
搭建一个Hibernate环境,开发步骤: 1. 下载源码 版本:hibernate-distribution-3.6.0.Final 2. 引入jar文件 hibernate3.j ...
- Linux根目录各个文件夹介绍及说明
/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/use ...
- string services
string通用字符串操作: re,正则表达式 difflib,比较序列 stringIO:以文件的方式来读和写字符串 CstringIO:更快捷的stringIO版本 textwrap:文本包装和填 ...
- canvas学习总结三:绘制路径-线段
Canvas绘图环境中有些属于立即绘制图形方法,有些绘图方法是基于路径的. 立即绘制图形方法仅有两个strokeRect(),fillRect(),虽然strokezText(),fillText() ...
- R语言重要数据集分析研究——R语言数据集的字段含义
R语言数据集的字段含义 作者:马文敏 选择一种数据结构来储存数据 将数据输入或导入到这个数据结构中 数据集的概念 数据集通常是有数据结构的一个矩形数组,行表示规则,列表示变量. 不同的行业对数据集的行 ...