0

我需要:

  • 二叉搜索树 C 库,如 std::map
  • 使用 lower_bound 操作
  • 迭代器在删除过程中保持稳定

在 C++ 术语中,我需要以下内容:

typedef std::map<K,V> map;
typedef map::iterator iter;
map m;
...
for (iter it = m.lower_bound(x); it != m.end(); )
{
    if (is_bad(it->second))
        m.erase(it++);
    else
        it++;
}

虽然我不能使用 C++。我尝试了libavl,但它没有lower_bound 操作,并且在删除AFAIU 后也遍历中断。

4

1 回答 1

0

从 libavl 将 lower_bound 添​​加到 trb 很容易。上传到github:

https://github.com/user15/trb-lb

PS:请注意,它遵循 GPL,这可能不适合专有代码。

于 2013-08-16T17:07:52.363 回答