没有重复的对象链接列表(C ++)?

时间:2013-06-16 18:54:13

标签: c++ list templates linked-list duplicates

我开发了一个简单的模板链表..我添加对象的方法是:

void add(T *obj) {
    Node *n = new Node;
    T *copy = new T(*obj);
    n->info = copy;
    [...]

我的Node是一个结构:

struct Node {
    T* data;
    Node *next;
    Node *prev;
};
Node *head;

如何查看某个对象是否已添加? (因为我不想重复)

这是一个模板,所以我认为它是唯一的解决方案,如果一个节点已经指向了对象(查看在add方法中传递的内存地址并将其搜索到一个节点中),那么这就是add方法,做一个对象的副本并将其插入新节点,因此此解决方案无法正常工作

我认为每次在add方法中添加新对象时都会使用T指针列表并插入对象的地址但是我不能使用标准列表(因为这是一个功课)而我不能使用我的类,因为它尚未定义..(g ++不编译)

如果我在类中使用私有指针,那么如果我尝试连续两次添加相同的对象,那么最后一个对象添加了这个工作..但如果我添加另一个对象然后添加相同的对象,列表将添加对象

一些想法?

另一个简短的问题: 是否正确添加方法中的副本?或者这个副本可以做一个奇怪的内存崩溃? (我是C ++的新手)

感谢所有人的耐心:)

0 个答案:

没有答案