C++ 自定义列表类的初始值设定项列表构造函数

C++ 自定义列表类的初始值设定项列表构造函数,c++,list,recursion,constructor,initializer,C++,List,Recursion,Constructor,Initializer,我正试图为学校的作业“重做”列表课程。然而,我还不知道如何让初始值设定项列表构造函数工作。到目前为止,我所拥有的: 列表节点 struct ListNode { ListNode(int value, ListNode* tail = nullptr) : data(value), next(tail) {} int data; ListNode* next; }; 在列表中。h List(std::initializer_list<int>);

我正试图为学校的作业“重做”列表课程。然而,我还不知道如何让初始值设定项列表构造函数工作。到目前为止,我所拥有的:

列表节点

struct ListNode
{
   ListNode(int value, ListNode* tail = nullptr) : data(value), next(tail) {}
   int        data;
   ListNode* next;
};
在列表中。h

List(std::initializer_list<int>);
List(std::initializer\u List);
在列表中。cc

List::List(std::initializer_list<int> il)
{
  head_ = copy(il, il.size()); //some form of recursive copy-function
}
List::List(std::initializer\u List-il)
{
head=复制(il,il.size());//某种形式的递归复制函数
}
我不知道如何继续执行复制功能。我试过std::copy,但那只会给我一个错误


有人知道该怎么做吗?

根据这一点,您可以使用经典的begin/end对初始值设定项列表进行迭代

对于每个列表元素,您应该调用
insert
。此外,您还必须编写一个
insert
函数。是的,但是这个赋值的一部分是,所有可以递归处理的东西都应该递归处理。关于如何递归插入,您有什么建议吗?是的,但我如何递归插入?通过调用
副本(il.begin(),il.end())
?那应该是什么样子<代码>列表节点*复制(初始值设定项列表::迭代器开始,初始值设定项列表::迭代器结束)?