这段代码中为啥n->l变了,n->a没变,如何做到让程序不复制*n,直接把*n添加到t中?
#include <iostream>
#include <list>
using namespace std;
struct node
{
int a;
list<int> l;
};
int main(int argc, char **argv)
{
list<node> t;
node *n=new node;
n->a=1;
n->l.push_back(2);
cout<<"n->l.size():"<<n->l.size()<<endl;//1
t.push_back(move(*n));
cout<<"n->l.size():"<<n->l.size()<<endl;//0
cout<<n->a<<endl;//仍然为1
delete n;
return 0;
}