【发布时间】:2017-09-23 01:24:58
【问题描述】:
我目前正在寻找一种类似于 C++ 中映射的数据结构。
我正在寻找一个可以返回立即小于某个数字的第一个元素的函数。例如:
map<int,int> m;
m[1] ++;
m[2] ++;
m[4] ++;
m[5] ++;
find_first_element_less_than(3) ----> return 2;
m.upper_bound(3) ---> return 4;
我查看了lower_bound 函数。但是,它说它返回的第一个元素不少于 key。在这种情况下,lower_bound(3) 返回 4。这不是我想要的。
我想知道 C++ 中是否有任何数据结构可以为我做到这一点?
更新:
我可以auto it = m.lower_bound(3); if (it != m.begin()) it--;吗??
【问题讨论】:
-
这还不清楚。你想找到键小于参数的 last 元素吗? (你想让函数返回值、键、迭代器还是什么?)
标签: c++ dictionary tree