goodwill223 2014年01月18日
关于STL queue内存如何管理如释放怎样处理呢
如下面例子:
#include<iostream.h>
#include <Windows.h>
#include<queue>
using namespace std;

typedef struct{
int iNum;
char szBuf[1024];
}tBox;

queue<tBox> queTBox;

int iWriteQueue()
{
tBox l_tBox1;
ZeroMemory( &l_tBox1, sizeof(tBox));
l_tBox1.iNum=1;
strcpy(l_tBox1.szBuf,"aaa");
queTBox.push(l_tBox1);
tBox l_tBox2;
ZeroMemory( &l_tBox2, sizeof(tBox));
l_tBox2.iNum=2;
strcpy(l_tBox2.szBuf,"bbb");
queTBox.push(l_tBox2);
tBox l_tBox3;
ZeroMemory( &l_tBox3, sizeof(tBox));
l_tBox3.iNum=3;
strcpy(l_tBox3.szBuf,"bbb");
queTBox.push(l_tBox3);
return 0;
}

int iReadQueue()
{
tBox l_tmpBox;
while(0!=queTBox.size())
{
l_tmpBox=queTBox.front();
cout<<l_tmpBox.iNum<<" "<<l_tmpBox.szBuf<<endl;
queTBox.pop();
}

return 0;
}
void main()
{
iWriteQueue();
iReadQueue();
cout<<queTBox.size()<<endl;

}
当队列不断加入结构体,程序分配内存是一直在增加的吧,而又pop之后内存是不是就自动回收了呢,还是还要在pop方法之后做些后继的处理的,如果要应该怎样处理呢。
还相一个问题:当队列不断加入结构体,程序的分配内存一直继续增大的吧,在这里想问有什么方法或什么策略,可以让内存不要一直往上增加,可以不是取队列的形式,其它什么形式都行,目标就可以在内存中查找得到加入的指定的结构体的
...全文
108 点赞 收藏 2
写回复
2 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告