vector::push_back 方法分析
2015-07-25 21:53
218 查看
vector<int>
intVec1 = { 1, 2 };
intVec1.push_back(3);
intVec1.push_back(4);
intVec1.push_back(5);
调用push_back成员函数之前
![](https://img-blog.csdn.net/20150725215029024)
执行语句 intVec1.push_back(3);之后
![](https://img-blog.csdn.net/20150725215145043)
可以看到把原来旧值复制到了新分配的空间,添加新值,并释放了原来使用的空间。
再次执行语句intVec1.push_back(4);
![](https://img-blog.csdn.net/20150725215112918)
同样把原来的旧值复制到了新分配的内存空间,添加新值,并释放了原来使用的空间
经过以上观察可以得知, 在原来空间不够存储新值时,每次调用push_back方法都会重新分配新的空间以满足新数据的添加操作。
如果在程序中频繁进行这种操作,还是比较消耗性能的。
intVec1 = { 1, 2 };
intVec1.push_back(3);
intVec1.push_back(4);
intVec1.push_back(5);
调用push_back成员函数之前
执行语句 intVec1.push_back(3);之后
可以看到把原来旧值复制到了新分配的空间,添加新值,并释放了原来使用的空间。
再次执行语句intVec1.push_back(4);
同样把原来的旧值复制到了新分配的内存空间,添加新值,并释放了原来使用的空间
经过以上观察可以得知, 在原来空间不够存储新值时,每次调用push_back方法都会重新分配新的空间以满足新数据的添加操作。
如果在程序中频繁进行这种操作,还是比较消耗性能的。
相关文章推荐
- 浅析STL中的常用算法
- STL区间成员函数及区间算法总结
- C++ Vector用法详解
- c++ STL容器总结之:vertor与list的应用
- C++在成员函数中使用STL的find_if函数实例
- 大家注意vector, list, set, map成员函数erase
- java中vector与hashtable操作实例分享
- C++ vector删除符合条件的元素示例分享
- 关于STL中list容器的一些总结
- C++ Vector用法深入剖析
- vector与map的erase()函数详细解析
- 关于STL中的map容器的一些总结
- vector,map,list,queue的区别详细解析
- C++ vector的用法小结
- 浅析stl序列容器(map和set)的仿函数排序
- STL list链表的用法详细解析
- stl容器set,map,vector之erase用法与返回值详细解析
- STl中的排序算法详细解析
- C++中vector的用法实例解析
- set、vector与list的构造与排序的耗时测试