读书人

C++ STL 容器 内存释放有关问题

发布时间: 2012-02-24 16:30:39 作者: rapoo

C++ STL 容器 内存释放问题
大家好,
我想问一下 关于容器 list queue
1.如果定义一个结构体类型ST_INFO
先加入 queue.push_back(ST_INFO);
然后下面操作可行不?
ST_INFO = queue.front();
queue.pop();
--------------
我的问题是 front() 这个不是传引用嘛?如果我pop()了ST_INFO 这个还可用嘛?为什么

2.为什么不断的加进队列然后pop出 但内存不断增大 怎么才能让内存不增大,出现这样原理是什么?

[解决办法]
To pathuang68

我说的只针对queue

pop()了里边元素不消除?front() 这个如果是拷贝就可以理解 但如果是引用的话 pop消除元素还怎么用?
都pop掉了,当然不能再用了。

C/C++ code
#include <iostream>#include <queue>using namespace std;int main (){  queue<int> myqueue;  int myint;  cout << "Please enter some integers (enter 0 to end):\n";  do {    cin >> myint;    myqueue.push (myint);  } while (myint);  cout << "myqueue contains: ";  while (!myqueue.empty())  {    cout << " " << myqueue.front();    // 这是使用元素    myqueue.pop();                               // 这是删除元素  }  return 0;} 

读书人网 >C++

热点推荐