出于学术目的,我正在尝试开发一些"文本冒险游戏".我必须自己实现所有数据结构.现在,我在实现通用(模板)LinkedList时遇到了一些问题.
具体来说,这个数据结构适用于所有(原始数据类型和自定义对象)但字符串!(标准库字符串).
当我尝试将字符串添加到列表时,应用程序崩溃并出现以下错误(在控制台中):
"在抛出'std :: logic_error'的实例后调用终止what():basic_string :: _ S_constructor null无效"
该列表使用头节点作为第一个最后一个节点实现为"双链表"
这里的代码("Abstract"List接口):
#ifndef LIST_H_
#define LIST_H_
template <class T>
class List
{
public:
virtual ~List() {}
virtual T get(int position) = 0;
virtual List* add(T item) = 0;
virtual List* insert(T item, int position) = 0;
virtual List* remove(int position) = 0;
virtual int size() const = 0;
virtual bool isEmpty() const = 0;
protected:
private:
};
#endif /* LIST_H_ */
Run Code Online (Sandbox Code Playgroud)
这是LinkedList实现("节点"类):
#include "List.h"
#include <stdlib.h>
#ifndef LINKEDLIST_H_
#define LINKEDLIST_H_ …Run Code Online (Sandbox Code Playgroud)