为什么说传vector的效率很低????
stl的实现是怎样的??为什么说复制vector等stl的效率很低。sizeof的结果为4,传递起来应该效率很高啊!用句柄类怎么样?效率如何?我问得是为什么复制vecto...
stl的实现是怎样的??
为什么说复制vector等stl的效率很低。
sizeof的结果为4, 传递起来应该效率很高啊!
用句柄类怎么样?效率如何?
我问得是为什么复制vector的效率很低。
谢谢! 展开
为什么说复制vector等stl的效率很低。
sizeof的结果为4, 传递起来应该效率很高啊!
用句柄类怎么样?效率如何?
我问得是为什么复制vector的效率很低。
谢谢! 展开
2个回答
展开全部
vector效率不低了,STL针对不同数据集合操作定义了不同的容器,假如容器的操作效率很低,那当年何必要开发标准库呢.
针对一般的简单操作来说,用容器代替数组是很明智的方法,因为数组的操作是在是不灵活.比如说:当你定义一个数组的时候,你肯定事先要定义这个数组的长度,就是说你在之后对这个数组的操作的时候,存放的数据最多不能超过这个长度,假如要增加空间的话,会很麻烦. 假如这里用vector来操作,就不必那么麻烦,vector没有硬性规定需要分配空间,就是说,当你存放的数据过多时,它会自动分配空间来保证所有的数据都有存放在vector里,当然,也可以手动分配.
对于其他类似复制操作的话,效率差不多,创建一份副本的方法,无论用什么都是一样的.
STL的开发初衷就是为了节省不必要的数据处理,目前看来最实用的属vector,map和string了.它们分别针对N维数组,二叉树或链表和字符串进行优化操作方式,以简明的方法来达到以前要写很冗长的代码才能完成的目的.总的来说STL就是许多对数据集合,字符串等优良算法的集合体
针对一般的简单操作来说,用容器代替数组是很明智的方法,因为数组的操作是在是不灵活.比如说:当你定义一个数组的时候,你肯定事先要定义这个数组的长度,就是说你在之后对这个数组的操作的时候,存放的数据最多不能超过这个长度,假如要增加空间的话,会很麻烦. 假如这里用vector来操作,就不必那么麻烦,vector没有硬性规定需要分配空间,就是说,当你存放的数据过多时,它会自动分配空间来保证所有的数据都有存放在vector里,当然,也可以手动分配.
对于其他类似复制操作的话,效率差不多,创建一份副本的方法,无论用什么都是一样的.
STL的开发初衷就是为了节省不必要的数据处理,目前看来最实用的属vector,map和string了.它们分别针对N维数组,二叉树或链表和字符串进行优化操作方式,以简明的方法来达到以前要写很冗长的代码才能完成的目的.总的来说STL就是许多对数据集合,字符串等优良算法的集合体
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询