C++ Boost-Fibonacci堆

C++ Boost-Fibonacci堆,c++,boost,fibonacci-heap,C++,Boost,Fibonacci Heap,我正在查看boost Fibonacci堆的代码,在许多地方,我看到一个名为_id的变量,类型为模板的id部分,如下所示:get_id,d,其中d是类型T&,其中T是模板的一部分。它的目的是什么,以及与默认的C++标准库等价的是什么? 下面是斐波那契堆的代码: void push(const T& d) { ++_n; size_type v = get(_id, d); _key[v] = d; _p[v] = nil(

我正在查看boost Fibonacci堆的代码,在许多地方,我看到一个名为_id的变量,类型为模板的id部分,如下所示:get_id,d,其中d是类型T&,其中T是模板的一部分。它的目的是什么,以及与默认的C++标准库等价的是什么?

下面是斐波那契堆的代码:

 void push(const T& d) {
        ++_n;
        size_type v = get(_id, d);
        _key[v] = d;
        _p[v] = nil();
        _degree[v] = 0;
        _mark[v] = false;
        _child[v] = nil();
        if (_root == nil()) {
            _root = _left[v] = _right[v] = v;
            //std::cout << "root added" << std::endl;
        } else {
            size_type u = _left[_root];
            _left[v] = u;
            _right[v] = _root;
            _left[_root] = _right[u] = v;
            if (_compare(d, _key[_root]))
                _root = v;
            //std::cout << "non-root node added" << std::endl;
        }
    }

您应该给出一个带有行号的实际示例,因为您的措辞完全不清楚,而且我们没有时间去阅读boost源代码来发现我已经把它说得更清楚了。