2015-06-27 86 views
3

例如,如果我的地圖是從整數到雙打併包含:如何調整地圖以找到最近的較小物體?

  • 2 - > 3.4
  • 3 - > 87.3
  • 5 - > 0.0
  • 12 - > 43.4

當我搜索4,I必須獲得87.3,由於圖3是最接近的較小鍵是在地圖上。當我搜索11時,我必須獲得0.0。

這可以通過一個平衡的樹來完成。但我不想實現一個平衡的樹,可能有一種方法可以直接使用STL來做到這一點?

+1

使用'lower_bound'? –

回答

5

這可以用std::map::lower_bound完成。根據地圖上的確切狀態,則可能需要遞減迭代器(去的元素實際上更小)。

總體複雜度是在任何情況下的對數。

+0

非常感謝,下次我會更仔細地閱讀文檔。 –