C++ 查找集合中最近的元素

C++ 查找集合中最近的元素,c++,set,C++,Set,假设我有一套,像这样: my_set = {"aaron", "cathy", "john", "stewie", "xavier"}; FindFirst(my_set, "a") // returns an iterator pointing to "aaron" FindFirst(my_set, "aaron") // returns an iterator pointing to "aaron" FindFirst(my_set, "bill") // returns

假设我有一套,像这样:

my_set = {"aaron", "cathy", "john", "stewie", "xavier"};
FindFirst(my_set, "a")      // returns an iterator pointing to "aaron"
FindFirst(my_set, "aaron")  // returns an iterator pointing to "aaron"
FindFirst(my_set, "bill")   // returns an iterator pointing to "cathy"
FindFirst(my_set, "zzzzz")  // returns past-the-end iterator
假设我想要这样一个函数:

my_set = {"aaron", "cathy", "john", "stewie", "xavier"};
FindFirst(my_set, "a")      // returns an iterator pointing to "aaron"
FindFirst(my_set, "aaron")  // returns an iterator pointing to "aaron"
FindFirst(my_set, "bill")   // returns an iterator pointing to "cathy"
FindFirst(my_set, "zzzzz")  // returns past-the-end iterator
基本上,它获取一个值并返回一个迭代器到该元素,或者返回它后面的第一个元素(如果提供的值位于集合末尾之后,则选择结束迭代器之前的值)


标准库中是否存在类似的函数,或者我必须自己编写一个吗?

是您正在寻找的函数。

很酷。我浏览了文档,注意到其中一个,我想它会返回集合中的第一个元素。我想这是没有意义的,因为
begin
已经这样做了,不是吗。它不能在任何情况下都返回集合的第一个元素——它向第一个元素返回一个迭代器,不少于传入的元素。