私の質問は非常に基本的ですが、自分で解決策を見つけることができませんでした。JavaのC++ map.lower_boundに相当します。
私はC++でアルゴリズムを書くのに慣れています。ここでは、多くの場合、std::map
構造体と、それが提供するすべての補助メソッドを使用します。
このメソッドは、キー> =を持つマップの最初の要素にパラメータとして与えられたキーを返します。例:
map<int, string> m;
// m = { 4 => "foo", 6 => "bar", 10 => "abracadabra" }
m.lower_bound(2); // returns iterator pointing to <4, "foo">
m.lower_bound(4); // returns iterator pointing to <4, "foo">
m.lower_bound(5); // returns iterator pointing to <6, "bar">
クールなことは、C++マップは赤黒木に基づくので、クエリは(O(log n)
)対数であることです。
私はJavaで特定のアルゴリズムを実装する必要があります。私は今説明したのと同じ機能が必要です。私はTreeMap
を使用することができ、順序付けられたツリーで実装されていることを知っています。しかし、私は方法lower_bound
と同等のものを見つけることはできないようです。そんなことはありますか?
ありがとうございました。
私はもっと慎重に見ていたはずですが、どういうわけか、それは 'TreeMap'で直接宣言されたメソッドでなければならないと思っていました。 –
'ceilingEntry'メソッドは' std :: lower_bound'と全く同じだと思いますが、 'lowerEntry'は非常に似ていますが、それでも違いはあります。 – stgatilov
私はあなたが正しいと思う、私は私の答えを編集します。 –