首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

容器的存储方式解决方案

2012-05-06 
容器的存储方式所有容器的存储都不是一块连续内存的吗?C/C++ codeint ival 3vectorT vecvectorT::

容器的存储方式
所有容器的存储都不是一块连续内存的吗?

C/C++ code
int ival = 3;vector<T> vec;vector<T>::iterator first = vec.begin(), last = vec.end();vec.insert(first, ival);// 添加新元素后last失效了,last的不再指向vec中的元素或末端后一位。为什么不是指向最后一个元素?// vec中的添加元素是动态分配内存? 


[解决办法]
vector是一块连续的内存的,end这个迭代器是指示你当前实际存储的下一个位置而已,而不是vector占用的内存的最后位置。vector是动态内存管理,当你插入一个数据的时候,vector发现已经申请到的内存不够用了,就会重新申请内存,并将数据拷贝进新内存区域,然后删除旧的。

热点排行