vector<X> v; X x; v.push_back(x); v.push_back(x); v.push_back(x);
为什么这段代码会调用类X的复制构造函数6次? (使用g 4.7.2 STL)
拜托,我想知道这个特定的STL在引擎盖下发生了什么.
如果你插入
v.reserve(3);
至少在前三个push_back()中防止了重新分配,因此,只有三次调用X(const X&)