C++vector容器大小增长规律的总结
2017-07-17 16:20
369 查看
问:“vector大小是如何增长的?”
答:“自动增长的”
问:“增长规律是?”
答: 。。。。。。
测试用代码:
可以看出,当分配的空间不够的时候,容器的空间将以指数倍数增加。
当空间不够用时,它会进行以下操作:
1、寻找更大空间
2、将原数据复制过去
3、释放原空间
这些操作会影响到程序运行的效率,所以reserve()操作(提前分配一定量的内存)来避免不必要的重新分配是很有必要的。
答:“自动增长的”
问:“增长规律是?”
答: 。。。。。。
那么, 今天就来探究一下vector容器的大小增长规律:
vector中得到大小的的函数有以下几个方法 | 作用 |
---|---|
size() | 返回容器的大小 |
empty() | 判断容器是否为空 |
max_size() | 返回容器最大的可以存储的元素 |
capacity() | 返回容器当前能够容纳的元素数量 |
#include <iostream> #include <vector> using namespace std; int main() { int N = 9; vector<char> aa; for(int i= 0; i < N; i++) { aa.push_back('f'); //输出当前容量 cout << aa.capacity() << endl; } }
i | capacity |
---|---|
0 | 0 |
1 | 1 |
2 | 2 |
3 | 4 |
4 | 4 |
5 | 8 |
6 | 8 |
7 | 8 |
8 | 8 |
9 | 16 |
… | … |
当空间不够用时,它会进行以下操作:
1、寻找更大空间
2、将原数据复制过去
3、释放原空间
这些操作会影响到程序运行的效率,所以reserve()操作(提前分配一定量的内存)来避免不必要的重新分配是很有必要的。
相关文章推荐
- C++中vector容器大小增长规律浅析
- c++ --->vector容器总结
- [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)
- [置顶] 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)
- 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。
- C++中vector容器的常用操作方法实例总结
- [置顶] 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)
- C++9.4 vector容器的自增长(size、capacity、reserve)
- C/C++ 标准容器 vector的内存空间自动增长概述
- C++STL中vector(可变大小数组)用法总结
- C++序列容器之 vector常见用法总结
- 在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。
- [置顶] 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)
- C++ vector容器的自增长
- C++中vector容器的自增长
- C++中vector容器的基本用法总结
- C++学习总结——vector容器的实现
- C++总结笔记(十)常见容器--Vector
- C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)
- 【C++】STL常用容器总结之三:向量vector