[英]With a STL map/set/multiset/multimap, How to find the first value greater than or equal to the search key?
假設我有一組值,存儲在std :: set中:
{1,2,6,8}
我有一個搜索鍵,比方說,3。我想將3放入一個函數並獲得大於或等於3的第一個值,在這種情況下我想得到6。
當然,map / set / multimap /和set中提供的find()函數將返回此情況的結束迭代器。 在這種情況下是否有類似的函數可以返回6?
是: upper_bound(X)
返回指向大於X
的第一個元素的迭代器。 還有一個lower_bound(X)
函數,它返回一個指向不小於X
的第一個元素的迭代器。 因此,半開區間[lower_bound(X), upper_bound(X))
中的所有元素將等於X.
你想要upper_bound函數。
map<int, int> mymap = { 1,2,6,8 };
map<int,int>::iterator i = mymap.upper_bound(3); // returns an iterator to the '6' element.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.