首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++标准库中的string内存是分配在堆下面吗

2013-02-17 
C++标准库中的string内存是分配在堆上面吗?例如我声明一个string变量。string str一直不停的str.append(x

C++标准库中的string内存是分配在堆上面吗?


例如我声明一个string变量。
string str;
一直不停的str.append("xxxxx");时,str会不停的增长。

我想问的是这个内存的增长,标准库中的string会把内存放置到堆上吗?

另外STL中的其他容器是否遵循相同的规则。

谢谢!
[解决办法]
肯定是堆里面的内存呀!看一下他的源代码实现就知道了!
[解决办法]
16以内在栈上,超过以后在堆上。
[解决办法]

引用:
引用:16以内在栈上,超过以后在堆上。
看来是看过某个实现版本源代码的淫啊!

MS的STL实现是这样的,短字符串在栈上分配有助于CPU提高Cache命中率。
[解决办法]
string的内存肯定是在堆上的,string内部自己维护一个申请和释放的指针,你外部应用是不用关心空间的申请,它内部会从堆上申请控件,析构时释放空间。

热点排行