这个题目问题是最后容器的容量是多少,即capacity是多少,而不是size是多少;
读入256,需要重新分配的size=256+256/2 不会超出1024,所以capaciy=1024;
读入512, 需要重新分配的size=512+512/2=768,小于1024,所以capacity=1024;
读入1000,需要重新分配的size=1000+500=1500,已经大于1024,所以需要增加capaciy,按照标准原则,增加的容量为当前capacity的二分之一,所以capacity=1024+1024/2=1536
读入1048,这里要仔细分析下:
当读入到第1025个元素时,容器会有一次隐式的自增加的过程,就是增加到上面的1536,此时可以把1048个元素都读入;接着执行svec.resize(svec.size()+svec.size()/2);计算出需要分配的size=1048+1048/2 = 1572,已经大于1536了,所以此时还需要一次隐式的自增,即capacity =1536+1536/2 =2304