gpt4 book ai didi

c++ - 如何创建一个 vector ,使每个框都是链表的头部?

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:12 27 4
gpt4 key购买 nike

我的问题是:我可以做什么而不是跟随?。我想创建一个 vector ,使每个框都是链表的头部,'insert_beg' 是一个将元素 (x) 插入列表开头的函数。我必须初始化 NULL 创建的每个框。

struct list
{
int info;
list* suivant;
};

void insert_beg(list* &debut,int x){
list* nouveau;
nouveau = new list;
nouveau->info = x;
nouveau->suivant = debut;
debut = nouveau;
}

int main()
{
int n=5;
vector<list*> tab;

for(int i=0;i<n;i++){
x=n*2;
tab.puch_back(?);
insert_beg(tab[i],x);
}
}

最佳答案

如果你想让 insert_beg 完成列表的所有初始化工作,你可以(确保 insert_beg 处理 nullptr 情况)

tab.push_back(nullptr);

tab 是一个 std::vector of list*,所以你也可以推回一个列表*

tab.push_back(new list);

然后您可以使用 operator[] 访问头部并修改头部的信息和suivant:

tab[i]->info  = x;
tab[i]->suivant = nullptr;

您还可以让列表类的构造函数在一行中执行上述操作。

list(int x = 0, list* next = nullptr) : info(x), suivant(next) {}

tab.push_back(new list(x, nullptr));

关于c++ - 如何创建一个 vector ,使每个框都是链表的头部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49842049/

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