当前位置:  开发笔记 > 编程语言 > 正文

我怎么能用c ++创建一个列表?

如何解决《我怎么能用c++创建一个列表?》经验,为你挑选了4个好方法。

如何在C++中创建列表?我需要它来创建一个链表.我该怎么做呢?我可以遵循哪些好的教程或示例?



1> Johannes Sch..:

我认为你知道C++已经有了一个链表类,你想要实现自己的,因为你想学习如何去做.

首先,阅读为什么我们使用数组而不是其他数据结构?,其中包含基本数据结构的良好答案.然后考虑如何在C++中对它们进行建模:

struct Node {
    int data;
    Node * next;
};

基本上,这就是实现列表所需的全部内容!(一个非常简单的).然而它没有抽象,你必须链接每手的项目:

Node a={1}, b={20, &a}, c={35, &b} d={42, &c};

现在,您已经拥有了一个链接的节点列表,这些节点都在堆栈中分配:

d -> c -> b -> a
42   35   20   1

下一步是编写一个List指向起始节点的包装类,并允许根据需要添加节点,跟踪列表的头部(以下内容非常简化):

class List {
    struct Node {
        int data;
        Node * next;
    };

    Node * head;

public:
    List() {
        head = NULL;
    }

    ~List() {
        while(head != NULL) {
            Node * n = head->next;
            delete head;
            head = n;
        }
    }

    void add(int value) {
        Node * n = new Node;
        n->data = value;
        n->next = head;
        head = n;
    }

    // ...
};

下一步是使List成为模板,以便您可以填充其他值(不仅仅是整数).

如果您熟悉智能指针,则可以替换使用智能指针的原始指针.通常我会发现人们会向初学者推荐智能指针.但在我看来,你应该先了解为什么你需要智能指针,然后使用它们.但这需要您首先了解原始指针.否则,你会使用一些神奇的工具,却不知道为什么需要它.



2> Roddy..:

你应该使用标准的List类.当然,除非这是一个家庭作业问题,否则您想知道STL如何实施列表.

你可以通过谷歌找到很多简单的教程,比如这个.如果您想知道链接列表是如何工作的"引擎盖",请尝试搜索C列表示例/教程而不是C++.


抱歉..我是靠自己学习,而不是从学校学习

3> karx11erx..:

如果要使用std::list,则需要传递类型参数:

list intList;  
list* intListPtr = new list;

如果你想知道列表是如何工作的,我建议使用谷歌搜索一些C/C++教程来了解这个主题.然后,下一步将学习足够的C++来创建列表类,最后是列表模板类.

如果您有更多问题,请回复此处.



4> mepcotterell..:

为什么重新发明轮子.只需使用STL列表容器即可.

#include 

// in some function, you now do...
std::list mylist; // integer list

更多信息...


std :: list是一个参数化类型,new返回一个指针,你的例子应该更像:list *mylist = new list ; 或者更好,简单地说:list mylist;
推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有