【发布时间】:2015-09-30 05:11:06
【问题描述】:
如果我将 STL 列表声明为
list<int> mylist;
然后只需使用 mylist.resize() 即可轻松调整其大小
但问题是我已将列表指针声明为
list<int> *mylistptr=new list<int>[n];
现在我想更改 mylistpr 的大小。由于它是一个指针,因此编译器在使用 resize() 时会抛出错误。可以选择使用 malloc() 为 mylistptr 分配内存,然后使用 realloc() 调整它的大小。但是,如果我不想使用 malloc() 和 realloc() 怎么办。有没有其他办法???
谢谢
【问题讨论】:
-
list<int> *mylistptr=new list<int>[n];为什么有人会这样做? -
调整指针大小在 C++ 中没有任何意义,因为您无法调整指针大小。
-
@BaummitAugen ,实际上我想要一个列表,其中每个元素都将保存一个与其对应的列表。或一种二维列表。至于您的问题,为什么有人会这样做??........我将它用于图形的邻接表示。
-
@juanchopanza,当我们使用 malloc() 为一维或二维数组分配内存时,保存分配内存的变量看起来像指针,但我们可以将它用作数组并且也可以调整大小。正如我上面提到的,我正在尝试制作二维列表............
-
这很好,但事实仍然是您无法调整指针的大小。你所描述的是让它指向不同的东西。