Повысить кучу Фибоначчи

Я искал код форсированной кучи Фибоначчи, и во многих местах я видел переменную под названием _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;
        }
    }

0 ответов

Другие вопросы по тегам