私はこの地図を持っています: map<int, int > items. キーが与えられた場合、このマップは、存在する場合はキーに対応するアイテムを返します。それ以外の場合、マップは、指定されたキーよりもすぐに小さいキーを持つアイテムを返します。たとえば、私が持っている場合:
items[0]=0;
items[6]=10;
items[15]=18;
items[20]=22;
key=15 の場合よりも、マップが値 18 の項目を返すことを望みます。それ以外の場合、key=9 の場合、マップが値 10 の項目を返すことを望みます。
この場合の関数が見つかりません。しかし、私はこの方法で試しました:
itlow=items.lower_bound(key);
if(!items.count(key))
itlow--;
return itlow->second;
items[0]=0これは、マップにデフォルトの最小値を入力して、私が望むように機能しますが、それがitlow--;適切なプログラミングではないことはわかっています。どのようにできるのか?皆さんありがとう。