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掉了,当然不能再用了。
#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;}