y*****x 发帖数: 3291 | 1 什么情况下 vector 的 insertion会比 list快?
我觉的在很小SIZE的数据下allocate memory花时间,有可能 list要比 vector慢。
还有什么其他特殊情况下会有这种情况出现吗? |
o***d 发帖数: 313 | 2 vector.insert(vec.end()) if vec.size()
???
【在 y*****x 的大作中提到】 : 什么情况下 vector 的 insertion会比 list快? : 我觉的在很小SIZE的数据下allocate memory花时间,有可能 list要比 vector慢。 : 还有什么其他特殊情况下会有这种情况出现吗?
|
w****a 发帖数: 710 | 3 vector会有reserve内存的,如果在capacity内就不需要new了 |
h*******e 发帖数: 1377 | 4 vector如果 相对较大的话, 每次开的空间会很大, 富余空间大,这时候push_back就
不用新开空间了。 另外二楼的vector写的STL对么。。怎么这么奇怪呢。 |
k***x 发帖数: 6799 | 5 得看是插在什么地方
如果插中间的话,vector很慢;如果是插在尾部的话,其实大多数情况下vector反而快 |
s***e 发帖数: 403 | 6 vector是有一个preallocation的,只要pushback在尾部不带来reallocation,速度非
常快。插入在中间要数据拷贝,可能还要realloc,非常慢。 |