列表声明中的差异
Difference in list declarations
以下声明之间有什么区别?
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>;
只是用不同的方式表达同一件事。有不同的论点支持和反对在变量名旁边打星号或不打星号。
相关文章:
- C++声明双链表,使用两个 for 循环双向遍历列表并打印
- 构造函数/函数声明参数列表中的统一初始化
- "extern"声明以及带有和不带参数列表的类模板实例的后续定义
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 如何在C++中声明抽象类的向量列表?
- c++17通过生成预先声明的类型列表的笛卡尔乘积来生成std::变体
- 用初始化列表和超类构造函数声明子类构造函数的正确方式
- 如何在成员初始化列表中声明共享指针
- C++具有继承列表的模板声明
- 声明带有变量的列表
- 声明变量以保存字符串列表时的内存分配
- STL C 中不同类型的列表声明的错误
- C++:使用声明中的逗号分隔列表
- 在声明节点创建链接列表时,为什么静态内存分配不起作用
- 声明并使用静态列表来打印对象(在c++中)
- 函数参数列表中的类声明
- 声明列表列表时"required from here"错误
- 在类的头文件中声明列表
- 如何使用Clang获取C/ c++程序的所有全局声明列表
- 将成员方法声明列表获取到文本编辑器中