我有一个用于制作链表的课程。在主要我想创建多个列表。我的意思是不覆盖前一个。如何在不必为创建类的对象的新名称的情况下执行此操作。例如,如果我必须做1000个列表,我就不能给它们1000个不同的名字。我尝试使用一系列对象,但我似乎无法让它工作。
编辑:很抱歉给您带来不便,但我不允许使用矢量。 这里有一些代码:
list **root;
root=new list*[M];
for (int i=0;i<M;i++)
{
root[i]=NULL;
root[i]=new list();
}
这是主要的,然后我用这个
(*root[pos]).addnode(b,a);
无论我使用什么pos,都会进入同一个列表。
答案 0 :(得分:0)
如果您创建了一些链接列表类LinkedList
,则可以创建std::vector
个列表。然后你可以迭代它们并做任何你想做的事。
#include <vector>
int main()
{
std::vector<LinkedList> lists(1000);
for (auto& list : lists)
{
// do something with each list
}
}
如果您确切知道要制作的LinkedList
个对象的数量,并且该值已修复,您还可以使用std::array
#include <array>
int main()
{
std::array<LinkedList, 1000> lists;
for (auto& list : lists)
{
// do something with each list
}
}
答案 1 :(得分:0)
您可以使用矢量来存储链接列表,或者如果要使用键访问它们,则可以使用地图。
// Here you can use a string to find a specific list
std::map<std::string, LinkedList> listMap;
// Then you can add and access list using the [] operator
listMap["Key"];
// Here you have to use an iterator to access the lists
std::vector<LinkedList> listVector(numberOfListsYouPlanToHave);