string a=b时a原内容问题
问个弱智的问题
比如我定义了一个std::string a="12222222223";
再定义b,std::string b="dsf";
当我做a=b;这样的操作时,a原来分配的内存是否会释放?
如果是以下的情况呢,
for(int i=10;i>0;i--)
{
a = new string('r',i);
}
a的赋新值前,是否会释放它的内存?
[解决办法]
顶。这个问题很好,学习了。
其实以前STL只是业务方面的应用,今天看了你的题目才注意到STL内存分配方面的设计。
a的赋新值前,是不会释放它的内存的。一般的sting默认分配的都比你需要的大。当内存不够或者强制缩减内存时调用函数重新分配内存。
[解决办法]
[解决办法]
string不会马上释放内存