如何在std :: map中找到每个节点的深度?

时间:2010-08-23 15:49:55

标签: c++ dictionary std stdmap c++-standard-library

如果构建我自己的二叉树,那么我可以找到每个节点的深度。 示例代码如下

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-tree,是否可以为std::map编写与此类似的内容?

1 个答案:

答案 0 :(得分:7)

std::map不能保证是一个b树,它只能保证至少具有良好的运行时复杂性。为了打开其他潜在实现的大门,该接口不包括用于检查此类实现细节的函数。 :)