Как найти глубину каждого узла в std :: map? - PullRequest
1 голос
/ 23 августа 2010

Если я создаю свое собственное двоичное дерево, то я могу найти глубину каждого узла. Пример кода выглядит следующим образом

template<class datatype>
void binary_node<datatype>::printNodeWithDepth(int currentNodeDepth)
{
    if ( left )
        left->printNodeWithDepth(currentNodeDepth+1);
    std::cout << value << " and the depth is " << currentNodeDepth << std::endl;
    if ( right)
        right->printNodeWithDepth(currentNodeDepth+1);
}

Но интересно, поскольку map - это b-дерево, можно ли написать что-то похожее на это для std::map?

1 Ответ

7 голосов
/ 23 августа 2010

std::map не гарантированно будет b-деревом, просто гарантированно будет иметь как минимум такую ​​же хорошую сложность во время выполнения. Чтобы открыть двери для других потенциальных реализаций, интерфейс не включает функции для проверки такого рода деталей реализации. :)

...