list问题怎么解决啊求答案

#include
using namespace std;
#include
struct my
{
int l;
int m;
void print()
{

}

};
list nol;
int main()
{
my*hn = new my;
nol.push_back(hn);
}
为什么可以用hn代入
编译通过

但是改写成list nol
用nol.push_back(hn)却不可以
为什么求详细的答案谢谢 请详细 请详细 请详细

my*hn = new my;   hn时my结构体类型,push到list里是可以的。

你的是这样定义的?list nol;

你的list是指针的容器,就只能push指针,如果不是指针的容器就nol.push_back(*hn)