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
已经这样做了,不是吗。它不能在任何情况下都返回集合的第一个元素——它向第一个元素返回一个迭代器,不少于传入的元素。