C++ 插入到linkedlist的前面

C++ 插入到linkedlist的前面,c++,C++,我的代码有问题。调用linkedlist的链接列表似乎没有使用这些值进行“更新”,或者它们没有保存或其他。需要帮忙,谢谢 template <class T> void LinkedList<T>::insert_front(const T& x) { LinkedList* p = this; LinkedList* tmp = new LinkedList(x,p); p = tmp; cout<<p->m_data<<endl

我的代码有问题。调用linkedlist的链接列表似乎没有使用这些值进行“更新”,或者它们没有保存或其他。需要帮忙,谢谢

template <class T>
void LinkedList<T>::insert_front(const T& x)
{
LinkedList* p = this;
LinkedList* tmp = new LinkedList(x,p); 
p = tmp;
cout<<p->m_data<<endl;
cout<<tmp->m_data<<endl;
模板
无效链接列表::插入前(常量T&x)
{
LinkedList*p=这个;
LinkedList*tmp=新的LinkedList(x,p);
p=tmp;

你对链表和方法的设计是错误的

在方法中,您定义了局部变量p并为其分配了tmp。退出该方法后,该局部变量将被销毁。因此列表本身没有发生任何问题。其数据成员都没有更改。此外,还存在内存泄漏

template <class T>
void LinkedList<T>::insert_front(const T& x)
{
LinkedList* p = this;
LinkedList* tmp = new LinkedList(x,p); 
p = tmp;
cout<<p->m_data<<endl;
cout<<tmp->m_data<<endl;
模板
无效链接列表::插入前(常量T&x)
{
LinkedList*p=这个;
LinkedList*tmp=新的LinkedList(x,p);
p=tmp;

couty你的链表概念是有缺陷的。链表有一个指向头节点的头指针。正如你写的那样,你分配一个新节点,让它把它的
下一个
指向
这个
,然后立即泄漏该分配。最后,你有一堆泄漏的内存和一个头节点,它什么都不指向,并且有什么需要做的egin:一个不确定的值和一个无处可去的
next
指针。
template <class T>
void LinkedList<T>::insert_front(const T& x)
{
LinkedList* p = this;
LinkedList* tmp = new LinkedList(x,p); 
p = tmp;
cout<<p->m_data<<endl;
cout<<tmp->m_data<<endl;