【发布时间】:2019-10-11 11:20:37
【问题描述】:
list<int>L[]=new list<int>[20];
这给出了一个错误“数组初始值设定项必须是初始值设定项 列表” 初始化列表有什么问题:
list<int> L[100];
list[] L 也有任何含义
list<int> *L=new list<int>[20]
为什么会这样?
如果可能的话,请给我简要解释每个案例,因为我是 STL 新手
【问题讨论】:
-
1) 不要这样做,使用
std::array<std::list<int>, 20>(静态分配)或std::vector<std::list<int>>(更改列表数量的能力)2) 如果你真的想试试有点奇怪,new将内存分配给一个指针(简而言之),你还需要在之后调用delete[] L。你的第一次尝试是错误的。 -
您能详细说明您要做什么吗?您是要存储
ints 的一个 列表,还是需要int的20列表?也很可能不需要手动分配内存。基本的list<int>或vector<int>甚至list<list<int>>应该适合你。 -
@alterigel 我正在尝试创建邻接列表。我需要初始化一个列表数组,列表的大小稍后给出
-
@mathnormie 啊,好的。这里的正常方法是使用
vector<vector<int>>。