STL C 中不同类型的列表声明的错误

Error for different type of list declaration in STL c++

本文关键字:列表 错误 声明 同类型 STL      更新时间:2023-10-16
list<int>L[]=new list<int>[20];

这给出了一个错误"数组初始化器必须是初始化器 列表"初始化列表有什么问题:

list<int> L[100];

也确实列表[] l表示任何东西

list<int> *L=new list<int>[20]为什么这起作用?

请给我每种情况的简短解释,因为我是新手STL

new list<int>[20]动态分配20个 list<int>对象的数组,并返回一个list<int>*指针。因此,您需要一个list<int>*变量才能接收该指针:

list<int> *L = new list<int>[20];
...
delete[] L;

list<int> L[]不声明指针,它声明了一个未指定大小的静态数组。您唯一可以分配的是包含所需数组元素的初始化列表,因此编译器可以推断数组的大小:

list<int> L[] = {a_list_object, another_list_object, ...};

list<int> L[100];声明100 list<int>对象的静态数组。不涉及指针。