感觉是内存分配器虚实转换时机不同造成的
vector申请了一大块内存,内存分配器只是给出了逻辑地址
当访问具体数据时,OS才会映射到物理地址
构造时给初值,算是访问大块连续逻辑空间,OS映射到物理地址效率高
构造时不给初值,OS只会把当前逻辑地址所在页面映射到物理页面
想必效率是没有前者高的
【 在 xieyf (绿蚁新醅酒,红泥小火炉) 的大作中提到: 】
: 最近碰到一个奇怪的问题, 一个简单的R3对象, 存放在std::vector中.
: 费解的一幕出现了, 如果vv定义的时候, 为每个元素指定初值, 那么后面对vv进行写操作就飞快.
: 而如果vv定义的时候, 不指定初值, 那么后面对vv写操作的时候, 就花费大约前一种3倍的时间.
: ...................
--
FROM 111.197.236.182