如果我在c ++程序中有一条声明为

list < int > *adj;

adj = new list < int > [V];


[v]是什么意思,它表示列表的大小或正在创建的列表的数量。

对不起这个愚蠢的问题,但我搜索了很多地方,但没有明确的答案。

编辑1:添加列表声明

最佳答案

adj = new list[V];


我希望您有一个类list并且它具有一个构造函数,默认或用户定义的公共构造函数均不接受任何参数,这意味着它是默认可构造的。并且V是一个整数。

如果仅使用list adj[V]系统会创建一个大小为listV数组,因此您的list构造函数将被调用V次。

new运算符分配内存并调用构造函数。

因此,此语句list* adj= new list[V]将内存分配为类列表对象大小的V倍,并调用类列表V的构造函数,并将内存位置的开始分配给变量adj

因此,要取消分配和销毁已创建的V的所有list对象,应按以下方式调用delete

delete [] adj;

关于c++ - 无法理解C++中List的实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31098915/

10-13 06:31