gpt4 book ai didi

c++ - 如何编写模板?

转载 作者:行者123 更新时间:2023-11-28 08:26:50 25 4
gpt4 key购买 nike

我需要编写一个包含节点的模板,该节点包含具有 2 个数据结构的数据:一个映射和一个最小堆,其中都有相同的节点,并且每 2 个相同的节点都连接在一起。问题是我需要堆来知道 heapify 的节点字段,我不知道这样做的正确方法是什么, friend 们?节点中的公共(public)字段?将节点写在堆中?使用 getter 和 setter?感谢大家的帮助。

最佳答案

好吧,链表可能是这样布局的:

namespace my_namespace
{
namespace detail
{
template <class T>
struct Node
{
T value;
Node* previous;
Node* next;
//constructors and other things that might help
};
}

template <class T>
class LinkedList
{
private:
detail::Node<T>* head;
public:
//all it does
};
}

没有特别的理由向用户或 LinkedList 类隐藏 Node 结构(将其放入 detail 命名空间应该绰绰有余):LinkedList 需要它,而 Node 本身对用户几乎没有用。所有封装都由 LinkedList 来实现:它只是不应该给出它的头部(或任何其他 Node*)。

关于c++ - 如何编写模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3745412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com