C++ vector插入一个元素然后使用stl的sort排序效率如何

C++ vector插入一个元素然后使用stl的sort排序效率如何,第1张

stl的sort一般来说是在各种情况下最优化的.从你这个情况的描述,stl的sort应该会默认为插入排序(insertion sort).如果你实在不放心可以自己写一个插入排序.这个复杂度最差情况应该只有O(n)当然最好情况也可以写成O(log n).

因为 “大小等于其容量的Vector对象” 在插入时,vector内部会重新申请一块更大的连续空间,并且还要把原来的内容都拷贝过去,这些动作都是要占用时间的,所以会“相对较慢”;而向“大小小于其容量的Vector对象”不需上述 *** 作。

你可以从数组构造

比如int a[] = { 0,1,3,5,6,4,2.... }

vector<int>v( a, a + sizeof( a ) / sizeof( a[0] ) )

动态添加就只有用push_back了

楼下说的对,我都快忘了。可以用resize预置vector的容量,这样就能免除push_back由于空间超过默认分配的定量内存时而重分配更大的一块新空间并把原内容重新拷过去所带来的效率损失,vector内部自动维护了一块定量的内存,这个空间可以用capacity()方法查看。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11782572.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存