找到集合中最近的元素

Wug*_*Wug 4 c++ set

说我有一套,像这样:

my_set = {"aaron", "cathy", "john", "stewie", "xavier"};
Run Code Online (Sandbox Code Playgroud)

说我想要这样的功能:

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
Run Code Online (Sandbox Code Playgroud)

基本上,它接受一个值并将迭代器返回到该元素或其后的第一个元素(如果提供的值位于集合结束之后,则选择过去的迭代器).

这样的功能是否存在于标准库中,或者我是否必须自己编写一个?

nne*_*neo 10

set::lower_bound 是你正在寻找的功能.