11

stlで赤黒木のコードを学びたいです。そして、ファイル bits/stl_tree.h で _Rb_tree_increment という名前の関数を見つけました

それは書いています:

 143   _GLIBCXX_PURE _Rb_tree_node_base*
 144   _Rb_tree_increment(_Rb_tree_node_base* __x) throw ();

しかし、この関数の定義が見つかりません。誰でも助けることができますか?

どうもありがとうございました。

4

3 に答える 3

3

その定義は、使用している標準ライブラリによって異なります。さまざまなコンパイラ ベンダーは、それぞれのコンパイラで標準ライブラリのさまざまな実装を提供しています。非テンプレート関数を見つけたようです。これは一部の cpp で定義する必要があり、lib ファイルでコンパイラに同梱されるため、コンパイラに同梱されないため、コードに直接アクセスすることはできません。単に必要ではありません。

コンパイラが Microsoft や Borland などの独自のコンパイラである場合は、それで十分です。ただし、gcc をお持ちの場合は幸運です。gcc はオープン ソースであり、標準ライブラリの gcc 実装のソースをオンラインで見つけることができます。

于 2013-06-17T15:10:38.077 に答える
2

これはライブラリのソース コードにありますが、おそらくあなたは持っていません。

GNU ライブラリのヘッダーを見ているように見えるので、ここからソースを探し始めるのがよいでしょう。

于 2013-06-17T15:12:18.523 に答える