5

std::sort()、、、std::binary_search()のようstd::lower_bound()なSTL 関数を備えたライブラリはありますstd::upper_bound()か?

もちろん、少ない述語は既存の 3 方向の述語 ( など[](A a, B b) { return compare3(a,b)<0; }) から簡単に作成できますが、これにより、述語への呼び出しが余分に発生します。

4

1 に答える 1

4

上記のアルゴリズムの実装を見ると、lower/upper_bound が 3 分岐をまったく行わないことがわかります。binary_search は最後の反復で等価性をチェックするだけで、sort() についてはわかりませんしかし、3方向分岐も行わないことはほぼ確実です。したがって、あなたの「最適化」はあなたを後押しすることはありません。逆に言えば、比較は遅くなります。

于 2011-05-22T06:48:46.697 に答える