#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
class Stu {
public:
Stu() {
cout << "构造" << endl;
}
~Stu() {
cout << "析构" << endl;
}
Stu(const Stu &a) {
cout << "拷贝" << endl;
}
};
int main(){
Stu t1;
std::queue<Stu> q;
q.push(t1);
q.pop();
}
一个对象放入容器,调用了其拷贝构造函数,生成了一份新的;
而当这个对象出容器时,容器认为此 对象没有用处,会调用其析构函数。
所以,当你拿引用去接收一个容器内的东西,需要先用完之后,再出容器。
如果引用接收后直接出容器,再使用,会segmentation fault。