关于容器动态增长的问题
vector容器的动态增长是新分配一个内存区,把原来已经被包含在容器中的元素拷贝到新分配的内存区中,再把原来的存储区释放.对于大型复杂类对象,插入一个此元素进vector中容器的容量为1,这意味着要是再动态增加一个复杂类对象元素,会重新分配一个容量为现在两倍的存储区,再把元素拷贝到新存储区,最后再释放原存储区.这样容器的性能很低,因为每次动态增加一个元素,都要调用对象的拷贝构造函数和析构函数(在释放原存储区时用到),对此有一种解决方案是用指针间接存储复杂类对象,这样增加用指针指代的复杂类对象时,容器的容量会从1增加到256,这样就避免了每次都要重新分配新存储区.
问题是为什么用指针后容器容量会从1增加到256? 书上说只有容器存储int类对象时容器容量才会为256.
不知道说清楚没有?这个问题是 C++ primer第三版中 第6章 抽象容器类型第6.3节中出现的. 大虾帮忙解释一下.