Как найти глубину каждого узла в std::map?

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

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 ответ

Решение

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

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