不同的编译器扩容机制不同;
对于vector:g++是2倍扩容,msvc是1.5倍扩容;
对于string:如果字符串没有超过15个字节,都是分配在栈上(short string optimization,i.e. SSO),capacity都是15;一旦超过了15个字节,则分配在堆上,扩容机制:g++是2倍,msvc是首先约2倍扩容,是31,然后是1.5倍扩容;
ps:array是固定大小的,定义的时候要指定大小,其数据存放在栈上面;
C++STL中vector,string扩容机制
于 2022-04-20 21:19:21 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)