列表声明中的差异

Difference in list declarations

本文关键字:声明 列表      更新时间:2023-10-16

以下声明之间有什么区别?

list<int> myList;
list<int> *myList=new list<int>;

是一个声明比另一个更适合某个特定的例子,还是它们只是表达相同事物的不同方式?此外,以下声明之间的区别是什么?

list<int> *myList=new list<int>;
list<int>* myList=new list<int>;

以上声明是错误的还是相同的?

主要区别在于第一条语句为值类型,第二条语句为指针类型。

第一条语句为堆栈上的list<int>分配所需内存,第二条语句为栈上类型为list<int>*的指针分配所需的内存,并为堆上的列表分配和填充所需内存。

编辑:回答您的第二个问题:

list<int> *myList=new list<int>;

list<int>* myList=new list<int>;

只是用不同的方式表达同一件事。有不同的论点支持和反对在变量名旁边打星号或不打星号。