c++ - 哪种数据结构类似于双向链表和数组的组合?

标签 c++ data-structures

是否有任何已经创建的结构,它只是双向链表节点基本数组

我的意思是,然后您使用 get(int index) 它将直接从数组 (array[i].element) 返回元素。有了这个结构,我也可以轻松地执行 foreach,因为每个元素都会相互链接,所以我不需要考虑空白数组的位置。

问:为什么我需要这个? A:我有无限的内存,我知道我需要多大的数组,我希望那个结构最快。

最佳答案

这是一个小型C++11 容器指南,只需设置您的约束并按照箭头操作即可:

enter image description here

海事组织std::deque是最有可能的候选人。

如果您想自己创建一些东西,这里有一个示例:

struct Node{
    // constructor
    Node (int v, Node* n = 0, Node* p = 0) 
        : value(v), next(n), prev(p) { }

    // data member
    int value;
    // pointer to next node
    Node* next;
    // pointer to previous node
    Node* prev;
};

size_t number_of_nodes = 10;
Node* ptr = new Node[number_of_nodes];

关于c++ - 哪种数据结构类似于双向链表和数组的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34996799/

相关文章:

c++ - 指向 vector 中对象的指针有时指向 vector 中的不同对象

c++ - 帮助双向链表?

data-structures - 数据结构比较

c++ - 使用字符串和整数逐行读取文件

algorithm - 为什么 d-heap 对于主存比二进制堆更有用?

data-structures - 什么是四链表?

python - 哪种数据结构在 python 中保留顺序?

c++ - 将工作委托(delegate)给父类(super class)的构造函数

c++11 结合 std::tuple 和 std::tie 以实现高效排序

c++ - 基类中抽象方法的包装器实现