gpt4 book ai didi

c++ - STL c++ 中不同类型列表声明的错误

转载 作者:行者123 更新时间:2023-11-27 23:39:46 25 4
gpt4 key购买 nike

list<int>L[]=new list<int>[20];

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

list<int> L[100];

还有 list[] 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> 的静态数组对象。不涉及指针。

关于c++ - STL c++ 中不同类型列表声明的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56299692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com