第一个数字的C++搜索算法= n

Ary*_*rya -2 c++ binary-search

我想要一种与二进制搜索类似的算法,其中我有一个数字n,比方说3,数组如下:

array[10] = {1,2,3,3,3,3,3,3,3,4,5,6}  
Run Code Online (Sandbox Code Playgroud)

我希望算法返回,p = 2因为前3个出现在数组的第2位.

对于此算法,假设数组已经排序.

我知道如何使用二进制搜索,但我不知道如何使它成为n数组中的第一个而不是n它找到的第一个.

Art*_*yom 5

看看std :: lower_bound它似乎就是你要找的东西

http://en.cppreference.com/w/cpp/algorithm/lower_bound