C++中的upper_bound()函数是如何实现长尾查找的?