在看STL标准库时,作者曾说,STL中vector几乎以一种哲学的方式管理其容量的大小,所以在谈到分期摊坏的复杂度时,几乎是可以不考虑的。但在vc6.0中则不然(vc6.0对STL不完美支持是总所周知的)。代码如下:
int main()
{
std::vector<Person> coll;
// coll.reserve(100);
coll.push_back(Person("test"));
coll.push_back(Person("word"));
coll.push_back(Person("rule"));
coll.push_back(Person("map"));
coll.push_back(Person("set"));
coll.push_back(Person("vector"));
coll.push_back(Person("list"));
coll.push_back(Person("deque"));
coll.push_back(Person("michael"));
return 0;
}
在Person类中,构造函数调用输出字符“2”,拷贝构造调用输出字符“123”,析构输出“~person”和参数。终端结果如下:
2
123
~person
test
2
123
123
~person
test
~person
word
2
123
123
123
~person
test
~person
word
~person
rule
2
123
~person
map
2
123
123
123
123
123
~person
test
~person
word
~person