C++标准库中的string内存是分配在堆上面吗?
例如我声明一个string变量。
string str;
一直不停的str.append("xxxxx");时,str会不停的增长。
我想问的是这个内存的增长,标准库中的string会把内存放置到堆上吗?
另外STL中的其他容器是否遵循相同的规则。
谢谢!
[解决办法]
肯定是堆里面的内存呀!看一下他的源代码实现就知道了!
[解决办法]
16以内在栈上,超过以后在堆上。
[解决办法]
MS的STL实现是这样的,短字符串在栈上分配有助于CPU提高Cache命中率。
[解决办法]
string的内存肯定是在堆上的,string内部自己维护一个申请和释放的指针,你外部应用是不用关心空间的申请,它内部会从堆上申请控件,析构时释放空间。